Load damage numerals; this example uses 1234 as damage ...jump from $3061... C2/052E A5 D0 LDA $D0 [$00:00D0] A:0001 X:00D2 Y:2400 ;total damage (number) C2/0530 8D D0 30 STA $30D0 [$00:30D0] A:0001 X:00D2 Y:2400 C2/0533 A9 56 05 LDA #$0556 A:0001 X:00D2 Y:2400 ;runs code at C2:0556 C2/0536 8D 6E 30 STA $306E [$00:306E] A:0556 X:00D2 Y:2400 C2/0539 9C 60 30 STZ $3060 [$00:3060] A:0556 X:00D2 Y:2400 C2/053C A9 01 00 LDA #$0001 A:0556 X:00D2 Y:2400 C2/053F 0C 00 30 TSB $3000 [$00:3000] A:0001 X:00D2 Y:2400 C2/0542 22 00 08 00 JSL $000800[$00:0800] A:0001 X:00D2 Y:2400 C2/0546 AD D2 30 LDA $30D2 [$00:30D2] A:0001 X:00D2 Y:2400 C2/0549 95 00 STA $00,x [$00:00D2] A:0201 X:00D2 Y:2400 ;damage numeral (display) C2/054B AD D4 30 LDA $30D4 [$00:30D4] A:0201 X:00D2 Y:2400 C2/054E 95 02 STA $02,x [$00:00D4] A:0403 X:00D2 Y:2400 C2/0550 AD D8 30 LDA $30D8 [$00:30D8] A:0403 X:00D2 Y:2400 C2/0553 95 04 STA $04,x [$00:00D6] A:0004 X:00D2 Y:2400 C2/0555 60 RTS A:0004 X:00D2 Y:2400 ---------------------------------------------------------------- SA-1 cpu chip; executed BEFORE C2/0546 C2/0556 A9 00 00 LDA #$0000 A:0000 X:0000 Y:7460 C2/0559 85 D2 STA $D2 [$00:00D2] A:0000 X:0000 Y:7460 C2/055B 85 D4 STA $D4 [$00:00D4] A:0000 X:0000 Y:7460 C2/055D 85 D8 STA $D8 [$00:00D8] A:0000 X:0000 Y:7460 C2/055F A9 01 00 LDA #$0001 A:0000 X:0000 Y:7460 C2/0562 8D 50 22 STA $2250 [$00:2250] A:0001 X:0000 Y:7460 C2/0565 A5 D0 LDA $D0 [$00:00D0] A:0001 X:0000 Y:7460 ;load final damage C2/0567 C9 E8 03 CMP #$03E8 A:04D2 X:0000 Y:7460 ;check if in 1000's C2/056A 30 18 BMI $18 [$0584] A:04D2 X:0000 Y:7460 ;branch if less than 1000 C2/056C 8D 51 22 STA $2251 [$00:2251] A:04D2 X:0000 Y:7460 C2/056F A9 E8 03 LDA #$03E8 A:04D2 X:0000 Y:7460 C2/0572 8D 53 22 STA $2253 [$00:2253] A:03E8 X:0000 Y:7460 C2/0575 A9 04 00 LDA #$0004 A:03E8 X:0000 Y:7460 ;load 4 C2/0578 85 D8 STA $D8 [$00:00D8] A:0004 X:0000 Y:7460 ;set numeral count as 4 (numerals) C2/057A AD 06 23 LDA $2306 [$00:2306] A:0004 X:0000 Y:7460 C2/057D 85 D2 STA $D2 [$00:00D2] A:0001 X:0000 Y:7460 C2/057F AD 08 23 LDA $2308 [$00:2308] A:0001 X:0000 Y:7460 ;load lower 3 digits (234) C2/0582 85 D0 STA $D0 [$00:00D0] A:00EA X:0000 Y:7460 C2/0584 C9 64 00 CMP #$0064 A:00EA X:0000 Y:7460 ;check if in 100's C2/0587 30 1C BMI $1C [$05A5] A:00EA X:0000 Y:7460 ;branch if less than 100 C2/0589 8D 51 22 STA $2251 [$00:2251] A:00EA X:0000 Y:7460 C2/058C A9 64 00 LDA #$0064 A:00EA X:0000 Y:7460 C2/058F 8D 53 22 STA $2253 [$00:2253] A:0064 X:0000 Y:7460 C2/0592 A5 D8 LDA $D8 [$00:00D8] A:0064 X:0000 Y:7460 ;load numeral count C2/0594 D0 05 BNE $05 [$059B] A:0004 X:0000 Y:7460 ;branch if not 0, otherwise set as 3 C2/0596 A9 03 00 LDA #$0003 C2/0599 85 D8 STA $D8 [$00:00D8] C2/059B AD 06 23 LDA $2306 [$00:2306] A:0004 X:0000 Y:7460 C2/059E 85 D3 STA $D3 [$00:00D3] A:0002 X:0000 Y:7460 C2/05A0 AD 08 23 LDA $2308 [$00:2308] A:0002 X:0000 Y:7460 ;load lower 2 digits (34) C2/05A3 85 D0 STA $D0 [$00:00D0] A:0022 X:0000 Y:7460 C2/05A5 C9 0A 00 CMP #$000A A:0022 X:0000 Y:7460 ;check if in 10's C2/05A8 30 1C BMI $1C [$05C6] A:0022 X:0000 Y:7460 ;branch if less than 10 C2/05AA 8D 51 22 STA $2251 [$00:2251] A:0022 X:0000 Y:7460 C2/05AD A9 0A 00 LDA #$000A A:0022 X:0000 Y:7460 C2/05B0 8D 53 22 STA $2253 [$00:2253] A:000A X:0000 Y:7460 C2/05B3 A5 D8 LDA $D8 [$00:00D8] A:000A X:0000 Y:7460 ;load numeral count C2/05B5 D0 05 BNE $05 [$05BC] A:0004 X:0000 Y:7460 ;branch if not 0, otherwise set as 2 C2/05B7 A9 02 00 LDA #$0002 C2/05BA 85 D8 STA $D8 [$00:00D8] C2/05BC AD 06 23 LDA $2306 [$00:2306] A:0004 X:0000 Y:7460 C2/05BF 85 D4 STA $D4 [$00:00D4] A:0003 X:0000 Y:7460 C2/05C1 AD 08 23 LDA $2308 [$00:2308] A:0003 X:0000 Y:7460 ;load lowest digit (4) C2/05C4 85 D0 STA $D0 [$00:00D0] A:0004 X:0000 Y:7460 C2/05C6 85 D5 STA $D5 [$00:00D5] A:0004 X:0000 Y:7460 C2/05C8 A5 D8 LDA $D8 [$00:00D8] A:0004 X:0000 Y:7460 ;load numeral count C2/05CA D0 05 BNE $05 [$05D1] A:0004 X:0000 Y:7460 ;branch if not 0, otherwise set as 1 C2/05CC A9 01 00 LDA #$0001 C2/05CF 85 D8 STA $D8 [$00:00D8] C2/05D1 A9 04 00 LDA #$0004 A:0004 X:0000 Y:7460 ;load 4 as maximum numeral count C2/05D4 38 SEC A:0004 X:0000 Y:7460 C2/05D5 E5 D8 SBC $D8 [$00:00D8] A:0004 X:0000 Y:7460 ;subtract current numeral count from 4 C2/05D7 F0 0B BEQ $0B [$05E4] A:0000 X:0000 Y:7460 ;branch if at 0 C2/05D9 3A DEC C2/05DA 9B TXY C2/05DB AA TAX C2/05DC B5 D2 LDA $D2,x [$00:00D2] C2/05DE 09 FF 00 ORA #$00FF C2/05E1 95 D2 STA $D2,x [$00:00D2] C2/05E3 BB TYX C2/05E4 A9 01 00 LDA #$0001 A:0000 X:0000 Y:7460 C2/05E7 8D 60 30 STA $3060 [$00:3060] A:0001 X:0000 Y:7460 C2/05EA 60 RTS A:0001 X:0000 Y:7460 C2/06A6 C2 30 REP #$30 A:0001 X:0000 Y:7460 C2/06A8 7A PLY A:0001 X:0000 Y:7460 C2/06A9 FA PLX A:0001 X:0000 Y:7460 C2/06AA 68 PLA A:0001 X:0000 Y:7460 C2/06AB 2B PLD A:0000 X:0000 Y:7460 C2/06AC AB PLB A:0000 X:0000 Y:7460 C2/06AD 6B RTL A:0000 X:0000 Y:7460 ---------------------------------------------------------------- C2/0730 A2 00 00 LDX #$0000 A:00C2 X:2400 Y:2400 P:enVmxdIzc $C2/0733 9B TXY A:00C2 X:0000 Y:2400 P:enVmxdIZc $C2/0734 BF E1 01 C2 LDA $C201E1,x[$C2:01E1] A:00C2 X:0000 Y:0000 P:enVmxdIZc $C2/0738 F0 0C BEQ $0C [$0746] A:2C00 X:0000 Y:0000 P:enVmxdIzc $C2/073A AA TAX A:2C00 X:0000 Y:0000 P:enVmxdIzc $C2/073B BF 00 00 40 LDA $400000,x[$40:2C00] A:2C00 X:2C00 Y:0000 P:enVmxdIzc $C2/073F F0 06 BEQ $06 [$0747] A:0088 X:2C00 Y:0000 P:enVmxdIzc $C2/0741 BB TYX A:0088 X:2C00 Y:0000 P:enVmxdIzc $C2/0742 E8 INX A:0088 X:0000 Y:0000 P:enVmxdIZc $C2/0743 E8 INX A:0088 X:0001 Y:0000 P:enVmxdIzc $C2/0744 80 ED BRA $ED [$0733] A:0088 X:0002 Y:0000 P:enVmxdIzc C2/0747 A5 E0 LDA $E0 [$00:00E0] A:0000 X:2D00 Y:0004 P:enVmxdIZc C2/0749 9F 00 00 40 STA $400000,x[$40:2D00] A:0080 X:2D00 Y:0004 P:enVmxdIzc C2/074D A5 E2 LDA $E2 [$00:00E2] A:0080 X:2D00 Y:0004 P:enVmxdIzc C2/074F 0A ASL A A:0010 X:2D00 Y:0004 P:enVmxdIzc C2/0750 A8 TAY A:0020 X:2D00 Y:0004 P:enVmxdIzc C2/0751 B7 EA LDA [$EA],y[$C2:E674] A:0020 X:2D00 Y:0020 P:enVmxdIzc C2/0753 18 CLC A:EA83 X:2D00 Y:0020 P:eNVmxdIzc C2/0754 65 E4 ADC $E4 [$00:00E4] A:EA83 X:2D00 Y:0020 P:eNVmxdIzc C2/0762 A5 EC LDA $EC [$00:00EC] A:EA8B X:2D00 Y:0020 P:eNvmxdIzc C2/0764 9F 04 00 40 STA $400004,x[$40:2D04] A:00C2 X:2D00 Y:0020 P:envmxdIzc C2/0768 A9 00 00 LDA #$0000 A:00C2 X:2D00 Y:0020 P:envmxdIzc C2/076B 9F 06 00 40 STA $400006,x[$40:2D06] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/076F 9F 08 00 40 STA $400008,x[$40:2D08] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/0773 A9 FF FF LDA #$FFFF A:0000 X:2D00 Y:0020 P:envmxdIZc C2/0776 9F 0A 00 40 STA $40000A,x[$40:2D0A] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/077A 9F 0C 00 40 STA $40000C,x[$40:2D0C] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/077E 9F 0E 00 40 STA $40000E,x[$40:2D0E] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/0782 9F 2A 00 40 STA $40002A,x[$40:2D2A] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/0786 9F 2C 00 40 STA $40002C,x[$40:2D2C] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/078A 9F 2E 00 40 STA $40002E,x[$40:2D2E] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/078E A9 00 00 LDA #$0000 A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/0791 9F 12 00 40 STA $400012,x[$40:2D12] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/0795 9F 10 00 40 STA $400010,x[$40:2D10] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/0799 9F 14 00 40 STA $400014,x[$40:2D14] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/079D 9F 16 00 40 STA $400016,x[$40:2D16] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07A1 9F 1A 00 40 STA $40001A,x[$40:2D1A] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07A5 9F 18 00 40 STA $400018,x[$40:2D18] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07A9 9F 1C 00 40 STA $40001C,x[$40:2D1C] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07AD 9F 1E 00 40 STA $40001E,x[$40:2D1E] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07B1 9F 22 00 40 STA $400022,x[$40:2D22] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07B5 9F 20 00 40 STA $400020,x[$40:2D20] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07B9 9F 24 00 40 STA $400024,x[$40:2D24] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07BD 9F 26 00 40 STA $400026,x[$40:2D26] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07C1 A9 00 80 LDA #$8000 A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07C4 9F 40 00 40 STA $400040,x[$40:2D40] A:8000 X:2D00 Y:0020 P:eNvmxdIzc C2/07C8 9F 42 00 40 STA $400042,x[$40:2D42] A:8000 X:2D00 Y:0020 P:eNvmxdIzc C2/07CC 9F 44 00 40 STA $400044,x[$40:2D44] A:8000 X:2D00 Y:0020 P:eNvmxdIzc C2/07D0 A9 FF FF LDA #$FFFF A:8000 X:2D00 Y:0020 P:eNvmxdIzc C2/07D3 9F 50 00 40 STA $400050,x[$40:2D50] A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/07D7 A9 00 00 LDA #$0000 A:FFFF X:2D00 Y:0020 P:eNvmxdIzc C2/07DA 9F 7E 00 40 STA $40007E,x[$40:2D7E] A:0000 X:2D00 Y:0020 P:envmxdIZc C2/07DE 60 RTS A:0000 X:2D00 Y:0020 P:envmxdIZc ---------------------------------------------------------------- Weapon/spell/run away animations C2/07DF A5 E2 LDA $E2 [$00:00E2] A:00F5 X:2500 Y:2500 C2/07E1 0A ASL A A:0000 X:2500 Y:2500 C2/07E2 A8 TAY A:0000 X:2500 Y:2500 C2/07E3 B7 EA LDA [$EA],y[$F5:0002] A:0000 X:2500 Y:0000 C2/07E5 18 CLC A:0402 X:2500 Y:0000 C2/07E6 65 E4 ADC $E4 [$00:00E4] A:0402 X:2500 Y:0000 C2/07E8 85 DA STA $DA [$00:00DA] A:0408 X:2500 Y:0000 C2/07EA A5 EC LDA $EC [$00:00EC] A:0408 X:2500 Y:0000 C2/07EC 85 DC STA $DC [$00:00DC] A:00F5 X:2500 Y:0000 C2/07EE A7 DA LDA [$DA] [$F5:0408] A:00F5 X:2500 Y:0000 C2/07F0 9F 02 00 40 STA $400002,x[$40:2502] A:0488 X:2500 Y:0000 C2/07F4 A5 EC LDA $EC [$00:00EC] A:0488 X:2500 Y:0000 C2/07F6 9F 04 00 40 STA $400004,x[$40:2504] A:00F5 X:2500 Y:0000 C2/07FA 60 RTS A:00F5 X:2500 Y:0000 ---------------------------------------------------------------- C2/0C01 86 64 STX $64 [$00:0064] A:4000 X:0014 Y:FF0F P:envmxdIzC C2/0C03 BF B1 01 C2 LDA $C201B1,x[$C2:01C5] A:4000 X:0014 Y:FF0F P:envmxdIzC C2/0C07 F0 31 BEQ $31 [$0C3A] A:2500 X:0014 Y:FF0F P:envmxdIzC C2/0C09 AA TAX A:2500 X:0014 Y:FF0F P:envmxdIzC C2/0C0A BF 00 00 40 LDA $400000,x[$40:2500] A:2500 X:2500 Y:FF0F P:envmxdIzC C2/0C0E D0 31 BNE $31 [$0C41] A:0000 X:2500 Y:FF0F P:envmxdIZC C2/0C10 A6 64 LDX $64 [$00:0064] A:0000 X:2500 Y:FF0F P:envmxdIZC C2/0C12 E8 INX A:0000 X:0014 Y:FF0F P:envmxdIzC C2/0C13 E8 INX A:0000 X:0015 Y:FF0F P:envmxdIzC C2/0C14 80 EB BRA $EB [$0C01] A:0000 X:0016 Y:FF0F P:envmxdIzC C2/0C41 86 66 STX $66 [$00:0066] A:0080 X:2C00 Y:FF0F P:envmxdIzC C2/0C43 BF 02 00 40 LDA $400002,x[$40:2C02] A:0080 X:2C00 Y:FF0F P:envmxdIzC C2/0C47 85 60 STA $60 [$00:0060] A:EC89 X:2C00 Y:FF0F P:eNvmxdIzC C2/0C49 BF 04 00 40 LDA $400004,x[$40:2C04] A:EC89 X:2C00 Y:FF0F P:eNvmxdIzC C2/0C4D 85 62 STA $62 [$00:0062] A:00C2 X:2C00 Y:FF0F P:envmxdIzC C2/0C4F A7 60 LDA [$60] [$C2:EC89] A:00C2 X:2C00 Y:FF0F P:envmxdIzC C2/0C51 29 FF 00 AND #$00FF A:21CA X:2C00 Y:FF0F P:envmxdIzC C2/0C54 A6 66 LDX $66 [$00:0066] A:00CA X:2C00 Y:FF0F P:envmxdIzC C2/0C56 9F 3C 00 40 STA $40003C,x[$40:2C3C] A:00CA X:2C00 Y:FF0F P:envmxdIzC C2/0C5A 0A ASL A A:00CA X:2C00 Y:FF0F C2/0C5B AA TAX A:0194 X:2C00 Y:FF0F C2/0C5C 7C 3D 0D JMP ($0D3D,x)[$C2:6624] A:0194 X:0194 Y:FF0F ---------------------------------------------------------------- C2/20DE 4C 5F 0C Processor C2/0C5F A6 66 LDX $66 [$00:0066] A:0088 X:2480 Y:2480 C2/0C61 BF 00 00 40 LDA $400000,x[$40:2480] A:0088 X:2480 Y:2480 C2/0C65 D0 03 BNE $03 [$0C6A] A:0088 X:2480 Y:2480 C2/0C6A A5 60 LDA $60 [$00:0060] A:0088 X:2480 Y:2480 C2/0C6C 9F 02 00 40 STA $400002,x[$40:2482] A:0464 X:2480 Y:2480 C2/0C70 A5 62 LDA $62 [$00:0062] A:0464 X:2480 Y:2480 C2/0C72 9F 04 00 40 STA $400004,x[$40:2484] A:00F5 X:2480 Y:2480 C2/0C76 A9 00 40 LDA #$4000 A:00F5 X:2480 Y:2480 C2/0C79 0C 06 07 TSB $0706 [$00:0706] A:4000 X:2480 Y:2480 C2/0C7C BF 00 00 40 LDA $400000,x[$40:2480] A:4000 X:2480 Y:2480 C2/0C80 89 80 00 BIT #$0080 A:0088 X:2480 Y:2480 C2/0C83 F0 19 BEQ $19 [$0C9E] A:0088 X:2480 Y:2480 C2/0C85 8E B0 30 STX $30B0 [$00:30B0] A:0088 X:2480 Y:2480 C2/0C88 A9 FE 08 LDA #$08FE A:0088 X:2480 Y:2480 C2/0C8B 8D 6E 30 STA $306E [$00:306E] A:08FE X:2480 Y:2480 C2/0C8E 9C 60 30 STZ $3060 [$00:3060] A:08FE X:2480 Y:2480 C2/0C91 A9 01 00 LDA #$0001 A:08FE X:2480 Y:2480 C2/0C94 0C 00 30 TSB $3000 [$00:3000] A:0001 X:2480 Y:2480 C2/0C97 22 00 08 00 JSL $000800[$00:0800] A:0001 X:2480 Y:2480 C2/0C9B 9C 60 30 STZ $3060 [$00:3060] A:0001 X:2480 Y:2480 C2/0C9E BF 2C 00 40 LDA $40002C,x[$40:24AC] A:0001 X:2480 Y:2480 C2/0CA2 C9 FF FF CMP #$FFFF A:FFFF X:2480 Y:2480 C2/0CA5 F0 44 BEQ $44 [$0CEB] A:FFFF X:2480 Y:2480 C2/0CEB BF 2A 00 40 LDA $40002A,x[$40:24AA] A:FFFF X:2480 Y:2480 C2/0CEF C9 FF FF CMP #$FFFF A:FFFF X:2480 Y:2480 C2/0CF2 F0 13 BEQ $13 [$0D07] A:FFFF X:2480 Y:2480 C2/0D07 A9 00 40 LDA #$4000 A:FFFF X:2480 Y:2480 C2/0D0A 1C 06 07 TRB $0706 [$00:0706] A:4000 X:2480 Y:2480 C2/0D0D A6 64 LDX $64 [$00:0064] A:4000 X:2480 Y:2480 C2/0D0F E8 INX A:4000 X:0012 Y:2480 C2/0D10 E8 INX A:4000 X:0013 Y:2480 C2/0D11 6C 68 00 JMP ($0068)[$C2:0C01] A:4000 X:0014 Y:2480 C2/0C01 86 64 STX $64 [$00:0064] A:4000 X:0014 Y:2480 C2/0C03 BF B1 01 C2 LDA $C201B1,x[$C2:01C5] A:4000 X:0014 Y:2480 C2/0C07 F0 31 BEQ $31 [$0C3A] A:2500 X:0014 Y:2480 C2/0C09 AA TAX A:2500 X:0014 Y:2480 C2/0C0A BF 00 00 40 LDA $400000,x[$40:2500] A:2500 X:2500 Y:2480 C2/0C0E D0 31 BNE $31 [$0C41] A:0000 X:2500 Y:2480 C2/0C10 A6 64 LDX $64 [$00:0064] A:0000 X:2500 Y:2480 C2/0C12 E8 INX A:0000 X:0014 Y:2480 C2/0C13 E8 INX A:0000 X:0015 Y:2480 C2/0C14 80 EB BRA $EB [$0C01] A:0000 X:0016 Y:2480 ...until X:0060 ... (only used for spells??? timing???) C2/0C3A A9 00 80 LDA #$8000 A:0000 X:0060 Y:2480 C2/0C3D 1C 06 07 TRB $0706 [$00:0706] A:8000 X:0060 Y:2480 C2/0C40 60 RTS A:8000 X:0060 Y:2480 (only used for physical attacks??? timing???) C2/0C41 86 66 STX $66 [$00:0066] A:0080 X:2C00 Y:FF0F P:envmxdIzC $C2/0C43 BF 02 00 40 LDA $400002,x[$40:2C02] A:0080 X:2C00 Y:FF0F P:envmxdIzC $C2/0C47 85 60 STA $60 [$00:0060] A:EC89 X:2C00 Y:FF0F P:eNvmxdIzC $C2/0C49 BF 04 00 40 LDA $400004,x[$40:2C04] A:EC89 X:2C00 Y:FF0F P:eNvmxdIzC $C2/0C4D 85 62 STA $62 [$00:0062] A:00C2 X:2C00 Y:FF0F $C2/0C4F A7 60 LDA [$60] [$C2:EC89] A:00C2 X:2C00 Y:FF0F P:envmxdIzC $C2/0C51 29 FF 00 AND #$00FF A:21CA X:2C00 Y:FF0F P:envmxdIzC $C2/0C54 A6 66 LDX $66 [$00:0066] A:00CA X:2C00 Y:FF0F P:envmxdIzC $C2/0C56 9F 3C 00 40 STA $40003C,x[$40:2C3C] A:00CA X:2C00 Y:FF0F P:envmxdIzC $C2/0C5A 0A ASL A A:00CA X:2C00 Y:FF0F P:envmxdIzC $C2/0C5B AA TAX A:0194 X:2C00 Y:FF0F P:envmxdIzc $C2/0C5C 7C 3D 0D JMP ($0D3D,x)[$C2:6624] A:0194 X:0194 Y:FF0F Event/Animation function pointers NOTES: Follow the number on the right by using doc_ani-code.txt. C2/0D3D 00> 65 10 01> E5 10 02> AF 12 03> B2 12 04> F7 12 ;pause script, resume when... 05> 75 13 06> 98 13 07> E3 13 08> EF 13 09> 9F 14 0A> A9 14 0B> AE 14 0C> 21 16 0D> 37 1B 0E> CF 1B 0F> F0 1B 10> 2A 1C 11> 4E 1C 12> 69 1C 13> F5 1C 14> 24 1F *??? 15> A4 24 *processor stuff 16> D7 27 *processor stuff 17> E9 27 18> 5F 28 19> 77 28 1A> AE 28 1B> D4 28 1C> FD 28 1D> 23 29 1E> 4C 29 1F> 69 29 20> 89 29 21> 2E 2B 22> 53 2B 23> 7C 2B 24> A1 2B 25> D6 2B 26> 07 2C 27> 3C 2C 28> 6D 2C 29> A2 2C 2A> D3 2C 2B> 08 2D 2C> 39 2D 2D> 67 2D 2E> 91 2D 2F> BF 2D 30> E9 2D 31> 0D 2E 32> 2D 2E 33> 51 2E 34> 71 2E 35> 92 2E 36> B0 2E 37> D5 2E 38> FD 2E 39> 2A 2F 3A> 57 2F *playback animation: target gets hit 3B> E2 2F 3C> F4 2F 3D> 0C 30 3E> 36 30 Display damage 3F> 37 31 40> 82 31 41> A8 31 42> CE 31 43> CA 32 *playback sequence for object's current sprite (set by command 03) 44> 18 33 45> 5D 33 46> 6B 33 Check for mortal status, if all down set game over 47> 96 33 48> D2 33 49> F6 33 4A> 77 3B 4B> D6 36 4C> 7E 3A 4D> F9 3A 4E> 08 3C 4F> 20 3C ??? 50> 48 3C 51> 6D 3C *jump to address if target not dead 52> 92 3C 53> B1 3C *??? 54> D0 3C 55> ED 3C 56> 0A 3D 57> 27 3D 58> 4A 3D 59> 76 3D 5A> 88 3D 5B> 9A 3D 5C> AD 3D 5D> C0 3D 5E> B7 3E 5F> EF 3E 60> 36 3F 61> 7D 3F 62> 82 3F 63> 3D 41 64> 73 42 65> A7 42 66> C1 42 67> F8 42 68> 2B 43 69> 61 43 6A> 6F 43 6B> 97 43 6C> B8 43 6D> 62 45 ;Animation: Recoil 6E> 84 46 6F> 1A 47 70> 8D 48 71> 9E 48 72> AF 48 73> 24 49 74> 73 49 75> 8B 49 76> A3 49 77> B1 49 78> 9A 4A 79> 01 4B 7A> 42 4B ;Display battle dialogue 7B> DE 4B 7C> EB 4B 7D> 36 4C ;??? game over stuff 7E> 3C 51 7F> 72 51 ;Monster: Sleep/Idle animation 80> BC 51 81> 23 52 82> 3E 52 83> 0F 53 84> 3A 53 85> FC 53 86> 8C 54 87> C4 54 88> D5 54 89> EC 54 8A> 03 55 8B> 3C 55 8C> 57 55 8D> 9C 55 8E> E1 55 8F> 26 56 90> E9 56 91> 06 57 92> 11 57 93> 1C 57 94> 27 57 95> 0A 59 96> 33 59 97> 93 59 98> D7 59 99> 47 5A 9A> 8C 5A 9B> 9A 5A 9C> 0D 5B 9D> 52 5B 9E> 76 5B 9F> C4 5B A0> FD 5B A1> 08 5C A2> 54 5C A3> 5D 5D A4> 86 5D A5> 28 5E A6> 37 5E A7> 4D 5E ;??? weapon timing? A8> BE 5E A9> D6 5E AA> E1 5E AB> 00 5F AC> 28 5F AD> 55 5F AE> 60 5F AF> 8B 5F B0> BB 5F B1> F3 5F B2> 2D 60 B3> 3F 60 B4> 51 60 B5> 6E 60 B6> 96 60 B7> BE 60 B8> D0 60 B9> 2E 61 BA> D0 61 BB> 06 62 BC> 2E 62 BD> 66 62 BE> 9E 62 BF> DD 62 C0> 2F 63 C1> 68 63 C2> A0 63 C3> 1D 64 C4> 91 64 C5> BB 64 C6> C9 64 C7> FE 64 C8> 70 65 C9> DC 65 CA> 24 66 CB> 5A 66 CC> 90 66 CD> 9C 66 CE> A8 66 CF> 13 67 D0> 6E 67 D1> FB 67 D2> 03 68 D3> 2D 68 D4> BB 68 D5> 70 69 ; Summon Monster D6> 23 6A D7> 60 6A D8> 67 6A D9> 8D 6A DA> C6 6A DB> 0E 6B DC> 4D 6B Psychopath palette change (displays sky blue numerals) DD> 66 6B DE> E0 6B DF> 21 6C E0> 69 6C E1> 9C 6C E2> E4 6C E3> 04 6D E4> 18 6D E5> 54 6D E6> 75 6D ;Resets status of ally? E7> 1F 0F E8> 1F 0F E9> 1F 0F EA> 22 0F EB> 22 0F EC> 74 0F ED> DC 0F EE> 22 0F EF> 22 0F F0> 29 10 C2/0C5F A6 66 LDX $66 [$00:0066] A:E800 X:00A8 Y:FF0F P:eNvmxdIZc C2/0C61 BF 00 00 40 LDA $400000,x[$40:2480] A:E800 X:2480 Y:FF0F P:envmxdIzc C2/0C65 D0 03 BNE $03 [$0C6A] A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C6A A5 60 LDA $60 [$00:0060] A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C6C 9F 02 00 40 STA $400002,x[$40:2482] A:046A X:2480 Y:FF0F P:envmxdIzc C2/0C70 A5 62 LDA $62 [$00:0062] A:046A X:2480 Y:FF0F P:envmxdIzc C2/0C72 9F 04 00 40 STA $400004,x[$40:2484] A:00F5 X:2480 Y:FF0F P:envmxdIzc C2/0C76 A9 00 40 LDA #$4000 A:00F5 X:2480 Y:FF0F P:envmxdIzc C2/0C79 0C 06 07 TSB $0706 [$00:0706] A:4000 X:2480 Y:FF0F P:envmxdIzc C2/0C7C BF 00 00 40 LDA $400000,x[$40:2480] A:4000 X:2480 Y:FF0F P:envmxdIZc C2/0C80 89 80 00 BIT #$0080 A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C83 F0 19 BEQ $19 [$0C9E] A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C85 8E B0 30 STX $30B0 [$00:30B0] A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C88 A9 FE 08 LDA #$08FE A:0088 X:2480 Y:FF0F P:envmxdIzc C2/0C8B 8D 6E 30 STA $306E [$00:306E] A:08FE X:2480 Y:FF0F P:envmxdIzc C2/0C8E 9C 60 30 STZ $3060 [$00:3060] A:08FE X:2480 Y:FF0F P:envmxdIzc C2/0C91 A9 01 00 LDA #$0001 A:08FE X:2480 Y:FF0F P:envmxdIzc C2/0C94 0C 00 30 TSB $3000 [$00:3000] A:0001 X:2480 Y:FF0F P:envmxdIzc C2/0C97 22 00 08 00 JSL $000800[$00:0800] A:0001 X:2480 Y:FF0F C2/0C9B 9C 60 30 STZ $3060 [$00:3060] A:0001 X:2480 Y:FF0F P:envmxdIZc C2/0C9E BF 2C 00 40 LDA $40002C,x[$40:24AC] A:0001 X:2480 Y:FF0F P:envmxdIZc C2/0CA2 C9 FF FF CMP #$FFFF A:FFFF X:2480 Y:FF0F P:eNvmxdIzc C2/0CA5 F0 44 BEQ $44 [$0CEB] A:FFFF X:2480 Y:FF0F P:envmxdIZC C2/0CEB BF 2A 00 40 LDA $40002A,x[$40:24AA] A:FFFF X:2480 Y:FF0F P:envmxdIZC C2/0CEF C9 FF FF CMP #$FFFF A:FFFF X:2480 Y:FF0F P:eNvmxdIzC C2/0CF2 F0 13 BEQ $13 [$0D07] A:FFFF X:2480 Y:FF0F P:envmxdIZC C2/0D07 A9 00 40 LDA #$4000 A:FFFF X:2480 Y:FF0F P:envmxdIZC C2/0D0A 1C 06 07 TRB $0706 [$00:0706] A:4000 X:2480 Y:FF0F P:envmxdIzC C2/0D0D A6 64 LDX $64 [$00:0064] A:4000 X:2480 Y:FF0F P:envmxdIzC C2/0D0F E8 INX A:4000 X:0012 Y:FF0F C2/0D10 E8 INX A:4000 X:0013 Y:FF0F C2/0D11 6C 68 00 JMP ($0068)[$C2:0C01] A:4000 X:0014 Y:FF0F ;timing??? ---------------------------------------------------------------- DOC_ANI-CODE: ;pause script, resume when... $C2/12F7 A6 66 LDX $66 [$00:0066] A:0008 X:0008 Y:0407 P:envmxdIzc $C2/12F9 A0 01 00 LDY #$0001 A:0008 X:2480 Y:0407 P:envmxdIzc $C2/12FC B7 60 LDA [$60],y[$F5:047A] A:0008 X:2480 Y:0001 P:envmxdIzc $C2/12FE 85 E0 STA $E0 [$00:00E0] A:2010 X:2480 Y:0001 P:envmxdIzc $C2/1300 89 08 00 BIT #$0008 A:2010 X:2480 Y:0001 P:envmxdIzc $C2/1303 F0 0B BEQ $0B [$1310] A:2010 X:2480 Y:0001 P:envmxdIZc $C2/1310 89 07 00 BIT #$0007 A:2010 X:2480 Y:0001 P:envmxdIZc $C2/1313 F0 11 BEQ $11 [$1326] A:2010 X:2480 Y:0001 P:envmxdIZc $C2/1326 89 10 00 BIT #$0010 A:2010 X:2480 Y:0001 P:envmxdIZc $C2/1329 D0 03 BNE $03 [$132E] A:2010 X:2480 Y:0001 P:envmxdIzc $C2/132E 9B TXY A:2010 X:2480 Y:0001 P:envmxdIzc $C2/132F BF 08 00 40 LDA $400008,x[$40:2488] A:2010 X:2480 Y:2480 P:envmxdIzc $C2/1333 0A ASL A A:0000 X:2480 Y:2480 P:envmxdIZc $C2/1334 AA TAX A:0000 X:2480 Y:2480 P:envmxdIZc $C2/1335 7C 38 13 JMP ($1338,x)[$C2:133C] A:0000 X:0000 Y:2480 P:envmxdIZc $C2/133C BB TYX A:0000 X:0000 Y:2480 P:envmxdIZc $C2/133D A0 02 00 LDY #$0002 A:0000 X:2480 Y:2480 P:envmxdIzc $C2/1340 B7 60 LDA [$60],y[$F5:047B] A:0000 X:2480 Y:0002 P:envmxdIzc $C2/1342 9F 06 00 40 STA $400006,x[$40:2486] A:0020 X:2480 Y:0002 P:envmxdIzc $C2/1346 A9 01 00 LDA #$0001 A:0020 X:2480 Y:0002 P:envmxdIzc $C2/1349 9F 08 00 40 STA $400008,x[$40:2488] A:0001 X:2480 Y:0002 P:envmxdIzc $C2/134D 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0001 X:2480 Y:0002 P:envmxdIzc ---------------------------------------------------------------- ... C2/1BCF A6 66 LDX $66 [$00:0066] A:001C X:001C Y:0001 P:enVmxdIzc $C2/1BD1 BF 00 00 40 LDA $400000,x[$40:2480] A:001C X:2480 Y:0001 P:enVmxdIzc $C2/1BD5 29 F8 FF AND #$FFF8 A:008F X:2480 Y:0001 P:enVmxdIzc $C2/1BD8 9F 00 00 40 STA $400000,x[$40:2480] A:0088 X:2480 Y:0001 P:enVmxdIzc $C2/1BDC A9 00 80 LDA #$8000 A:0088 X:2480 Y:0001 P:enVmxdIzc $C2/1BDF 9F 40 00 40 STA $400040,x[$40:24C0] A:8000 X:2480 Y:0001 P:eNVmxdIzc $C2/1BE3 9F 42 00 40 STA $400042,x[$40:24C2] A:8000 X:2480 Y:0001 P:eNVmxdIzc $C2/1BE7 9F 44 00 40 STA $400044,x[$40:24C4] A:8000 X:2480 Y:0001 P:eNVmxdIzc $C2/1BEB E6 60 INC $60 [$00:0060] A:8000 X:2480 Y:0001 P:eNVmxdIzc $C2/1BED 4C 4F 0C JMP $0C4F [$C2:0C4F] A:8000 X:2480 Y:0001 ... C2/1BF0 A6 66 LDX $66 [$00:0066] A:001E X:001E Y:0001 P:enVmxdIzc $C2/1BF2 A9 00 00 LDA #$0000 A:001E X:2480 Y:0001 P:enVmxdIzc $C2/1BF5 9F 30 00 40 STA $400030,x[$40:24B0] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1BF9 9F 34 00 40 STA $400034,x[$40:24B4] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1BFD 9F 38 00 40 STA $400038,x[$40:24B8] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C01 9F 10 00 40 STA $400010,x[$40:2490] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C05 9F 12 00 40 STA $400012,x[$40:2492] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C09 9F 14 00 40 STA $400014,x[$40:2494] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C0D 9F 18 00 40 STA $400018,x[$40:2498] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C11 9F 1A 00 40 STA $40001A,x[$40:249A] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C15 9F 1C 00 40 STA $40001C,x[$40:249C] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C19 9F 20 00 40 STA $400020,x[$40:24A0] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C1D 9F 22 00 40 STA $400022,x[$40:24A2] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C21 9F 24 00 40 STA $400024,x[$40:24A4] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C25 E6 60 INC $60 [$00:0060] A:0000 X:2480 Y:0001 P:enVmxdIZc $C2/1C27 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0000 X:2480 Y:0001 ... $C2/1CF5 A6 66 LDX $66 [$00:0066] A:0026 X:0026 Y:2480 $C2/1CF7 AD 00 07 LDA $0700 [$00:0700] A:0026 X:2000 Y:2480 $C2/1CFA 89 00 40 BIT #$4000 A:E000 X:2000 Y:2480 $C2/1CFD D0 08 BNE $08 [$1D07] A:E000 X:2000 Y:2480 $C2/1D07 89 00 08 BIT #$0800 A:E000 X:2000 Y:2480 $C2/1D0A F0 03 BEQ $03 [$1D0F] A:E000 X:2000 Y:2480 $C2/1D0F 89 80 00 BIT #$0080 A:E000 X:2000 Y:2480 $C2/1D12 D0 0A BNE $0A [$1D1E] A:E000 X:2000 Y:2480 $C2/1D14 9B TXY A:E000 X:2000 Y:2480 $C2/1D15 BF 08 00 40 LDA $400008,x[$40:2008] A:E000 X:2000 Y:2000 $C2/1D19 0A ASL A A:0002 X:2000 Y:2000 $C2/1D1A AA TAX A:0004 X:2000 Y:2000 $C2/1D1B 7C C1 1D JMP ($1DC1,x)[$C2:1E38] A:0004 X:0004 Y:2000 turn start??? C2/1D1E 9B TXY A:E080 X:2000 Y:2480 C2/1D1F BF 08 00 40 LDA $400008,x[$40:2008] A:E080 X:2000 Y:2000 C2/1D23 0A ASL A A:0000 X:2000 Y:2000 C2/1D24 AA TAX A:0000 X:2000 Y:2000 C2/1D25 7C 94 1E JMP ($1E94,x)[$C2:1E9A] A:0000 X:0000 Y:2000 timing??? C2/1D28 A2 00 00 LDX #$0000 A:E800 X:2000 Y:FF0F P:eNvmxdIzc $C2/1D2B 86 E0 STX $E0 [$00:00E0] A:E800 X:0000 Y:FF0F P:envmxdIZc $C2/1D2D 9B TXY A:E800 X:0000 Y:FF0F P:envmxdIZc $C2/1D2E BD 30 07 LDA $0730,x[$00:0730] A:E800 X:0000 Y:0000 P:envmxdIZc $C2/1D31 F0 18 BEQ $18 [$1D4B] A:FA80 X:0000 Y:0000 P:eNvmxdIzc $C2/1D33 AA TAX A:FA80 X:0000 Y:0000 P:eNvmxdIzc $C2/1D34 BF 3E 00 7E LDA $7E003E,x[$7E:FABE] A:FA80 X:FA80 Y:0000 P:eNvmxdIzc $C2/1D38 AA TAX A:2480 X:FA80 Y:0000 P:envmxdIzc $C2/1D39 BF 00 00 40 LDA $400000,x[$40:2480] A:2480 X:2480 Y:0000 P:envmxdIzc $C2/1D3D F0 7A BEQ $7A [$1DB9] A:0088 X:2480 Y:0000 P:envmxdIzc $C2/1D3F 89 20 00 BIT #$0020 A:0088 X:2480 Y:0000 P:envmxdIzc $C2/1D42 F0 02 BEQ $02 [$1D46] A:0088 X:2480 Y:0000 P:envmxdIZc $C2/1D46 BB TYX A:0088 X:2480 Y:0000 P:envmxdIZc $C2/1D47 E8 INX A:0088 X:0000 Y:0000 P:envmxdIZc $C2/1D48 E8 INX A:0088 X:0001 Y:0000 P:envmxdIzc $C2/1D49 80 E2 BRA $E2 [$1D2D] A:0088 X:0002 Y:0000 P:envmxdIzc C2/1D4B A5 E0 LDA $E0 [$00:00E0] A:0000 X:0002 Y:0002 P:envmxdIZc C2/1D4D F0 03 BEQ $03 [$1D52] A:0000 X:0002 Y:0002 P:envmxdIZc C2/1D52 AD 00 07 LDA $0700 [$00:0700] A:0000 X:0002 Y:0002 P:envmxdIZc C2/1D55 89 00 04 BIT #$0400 A:E800 X:0002 Y:0002 P:eNvmxdIzc C2/1D58 D0 09 BNE $09 [$1D63] A:E800 X:0002 Y:0002 P:eNvmxdIZc C2/1D5A 09 00 04 ORA #$0400 A:E800 X:0002 Y:0002 P:eNvmxdIZc C2/1D5D 8D 00 07 STA $0700 [$00:0700] A:EC00 X:0002 Y:0002 P:eNvmxdIzc C2/1D60 4C 5F 0C JMP $0C5F [$C2:0C5F] A:EC00 X:0002 Y:0002 P:eNvmxdIzc ... $C2/1E38 AE 02 07 LDX $0702 [$00:0702] A:0004 X:0004 Y:2000 $C2/1E3B BF 00 3D 40 LDA $403D00,x[$40:3D00] A:0004 X:0000 Y:2000 $C2/1E3F 89 01 00 BIT #$0001 A:FA80 X:0000 Y:2000 $C2/1E42 D0 14 BNE $14 [$1E58] A:FA80 X:0000 Y:2000 $C2/1E44 AA TAX A:FA80 X:0000 Y:2000 $C2/1E45 BF 3E 00 7E LDA $7E003E,x[$7E:FABE] A:FA80 X:FA80 Y:2000 $C2/1E49 AA TAX A:2480 X:FA80 Y:2000 $C2/1E4A BF 00 00 40 LDA $400000,x[$40:2480] A:2480 X:2480 Y:2000 $C2/1E4E F0 3C BEQ $3C [$1E8C] A:00C8 X:2480 Y:2000 $C2/1E50 89 40 00 BIT #$0040 A:00C8 X:2480 Y:2000 $C2/1E53 F0 03 BEQ $03 [$1E58] A:00C8 X:2480 Y:2000 $C2/1E55 4C 5F 0C JMP $0C5F [$C2:0C5F] A:00C8 X:2480 Y:2000 ... C2/1E58 AE 02 07 LDX $0702 [$00:0702] A:008F X:2480 Y:2000 C2/1E5B E8 INX A:008F X:0000 Y:2000 C2/1E5C E8 INX A:008F X:0001 Y:2000 C2/1E5D 8E 02 07 STX $0702 [$00:0702] A:008F X:0002 Y:2000 C2/1E60 A9 00 20 LDA #$2000 A:008F X:0002 Y:2000 C2/1E63 1C 00 07 TRB $0700 [$00:0700] A:2000 X:0002 Y:2000 C2/1E66 AD 00 07 LDA $0700 [$00:0700] A:2000 X:0002 Y:2000 C2/1E69 89 02 00 BIT #$0002 A:C000 X:0002 Y:2000 C2/1E6C D0 11 BNE $11 [$1E7F] A:C000 X:0002 Y:2000 C2/1E6E BF 00 3D 40 LDA $403D00,x[$40:3D02] A:C000 X:0002 Y:2000 C2/1E72 F0 0B BEQ $0B [$1E7F] A:FC00 X:0002 Y:2000 C2/1E74 BB TYX A:FC00 X:0002 Y:2000 C2/1E75 A9 01 00 LDA #$0001 A:FC00 X:2000 Y:2000 C2/1E78 9F 08 00 40 STA $400008,x[$40:2008] A:0001 X:2000 Y:2000 C2/1E7C 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0001 X:2000 Y:2000 ... C2/1E9A AE 50 07 LDX $0750 [$00:0750] A:0000 X:0000 Y:2000 P:envmxdIZc $C2/1E9D BF 3E 00 7E LDA $7E003E,x[$7E:FC3E] A:0000 X:FC00 Y:2000 P:eNvmxdIzc $C2/1EA1 AA TAX A:2400 X:FC00 Y:2000 P:envmxdIzc $C2/1EA2 BF 00 00 40 LDA $400000,x[$40:2400] A:2400 X:2400 Y:2000 P:envmxdIzc $C2/1EA6 89 40 00 BIT #$0040 A:00C8 X:2400 Y:2000 P:envmxdIzc $C2/1EA9 F0 03 BEQ $03 [$1EAE] A:00C8 X:2400 Y:2000 P:envmxdIzc $C2/1EAB 4C 5F 0C JMP $0C5F [$C2:0C5F] A:00C8 X:2400 Y:2000 ---------------------------------------------------------------- DOC_ANI-CODE: <14> 24 1F * DISASSEMBLER NOTE: In the animation scripts, you can view the faint animation by going to address 35/0468. It's called there. C2/1F24 A6 66 C2/1F26 9B TXY A:0028 X:2480 Y:0001 P:enVmxdIzc C2/1F27 BF 08 00 40 LDA $400008,x[$40:2488] A:0028 X:2480 Y:2480 P:enVmxdIzc C2/1F2B 0A ASL A A:0000 X:2480 Y:2480 P:enVmxdIZc C2/1F2C AA TAX A:0000 X:2480 Y:2480 P:enVmxdIZc C2/1F2D 7C 30 1F JMP ($1F30,x)[$C2:1F44] A:0000 X:0000 Y:2480 P:enVmxdIZc 44 1F ;checks if ally is down or disabled? A3 20 ; E1 20 ; 1F 21 ; 67 21 ; B3 21 ; D5 21 ; 3F 23 ; 56 23 ; 7A 23 ; C2/1F44 BB BF 00 00 40 89 40 00 D0 56 ;jumps to C2/1FB2 (sets bit7 to mortal status and faint frame to E4) C2/1F53 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:2480 C2/1F57 89 40 00 BIT #$0040 A:0040 X:FA80 Y:2480 C2/1F5A D0 56 BNE $56 [$1FB2] A:0040 X:FA80 Y:2480 ... C2/1FB2 09 80 00 ORA #$0080 A:0040 X:FA80 Y:2480 C2/1FB5 9F 00 00 7E STA $7E0000,x[$7E:FA80] A:00C0 X:FA80 Y:2480 C2/1FB9 A9 04 00 LDA #$0004 A:00C0 X:FA80 Y:2480 C2/1FBC 85 E4 STA $E4 [$00:00E4] A:0004 X:FA80 Y:2480 C2/1FBE 4C B5 23 JMP $23B5 [$C2:23B5] A:0004 X:FA80 Y:2480 ;Load animations ---------------------------------------------------------------- load ailments C2/1FC1 BF 0A 00 40 LDA $40000A,x[$40:248A] A:E000 X:2480 Y:2480 C2/1FC5 AA TAX A:FA80 X:2480 Y:2480 C2/1FC6 22 15 A0 C2 JSL $C2A015[$C2:A015] A:FA80 X:FA80 Y:2480 ;Ally: Turn Start C2/1FCA BF 40 00 7E LDA $7E0040,x[$7E:FAC0] A:8080 X:FA80 Y:2480 ;loads status ailment C2/1FCE 29 FF 00 AND #$00FF A:0300 X:FA80 Y:2480 ;isolate C2/1FD1 D0 2C BNE $2C [$1FFF] A:0000 X:FA80 Y:2480 ;Ally: Ailments and what they do If there is no ailment, immediately run the following C2/1FD3 A9 31 00 LDA #$0031 A:0000 X:FA80 Y:2480 C2/1FD6 EB XBA A:0031 X:FA80 Y:2480 C2/1FD7 09 01 00 ORA #$0001 A:3100 X:FA80 Y:2480 C2/1FDA 85 E0 STA $E0 [$00:00E0] A:3101 X:FA80 Y:2480 C2/1FDC BF 2D 00 7E LDA $7E002D,x[$7E:FAAD] A:3101 X:FA80 Y:2480 C2/1FE0 29 FF 00 AND #$00FF A:2302 X:FA80 Y:2480 C2/1FE3 85 E2 STA $E2 [$00:00E2] A:0002 X:FA80 Y:2480 C2/1FE5 64 E4 STZ $E4 [$00:00E4] A:0002 X:FA80 Y:2480 C2/1FE7 64 EC STZ $EC [$00:00EC] A:0002 X:FA80 Y:2480 C2/1FE9 A6 66 LDX $66 [$00:0066] A:0002 X:FA80 Y:2480 C2/1FEB BF 0E 00 40 LDA $40000E,x[$40:248E] A:0002 X:2480 Y:2480 C2/1FEF AA TAX A:4040 X:2480 Y:2480 C2/1FF0 20 01 73 JSR $7301 [$C2:7301] A:4040 X:4040 Y:2480 ;Ally: Load Animation Data? C2/1FF3 A6 66 LDX $66 [$00:0066] A:0008 X:4040 Y:0008 C2/1FF5 A9 02 00 LDA #$0002 A:0008 X:2480 Y:0008 ;load camera gawk frame (for ABXY buttons) C2/1FF8 9F 08 00 40 STA $400008,x[$40:2488] A:0002 X:2480 Y:0008 C2/1FFC 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0002 X:2480 Y:0008 ---------------------------------------------------------------- Ally: Ailments and what they do C2/1FFF A4 66 A2 FF FF E8 4A 90 FC 8A 0A AA C2/200B 7C 0E 20 1E 20 ;Mute 29 20 ;Sleep 3A 20 ;Poison 48 20 ;Fear 53 20 ;*Confuse 68 20 ;Mushroom 8D 20 ;Scarecrow 98 20 ;Invincible/Invulnerable/Red Essence Mute C2/201E BB TYX A:0000 X:0000 Y:1484 C2/201F A9 02 00 LDA #$0002 A:0000 X:0000 Y:1484 C2/2022 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/2026 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 Sleep C2/2029 BB TYX A:0000 X:0000 Y:1484 C2/202A BF 00 00 40 LDA $400000,x[$40:0000] A:0000 X:0000 Y:1484 C2/202E 29 BF FF AND #$FFBF A:0000 X:0000 Y:1484 C2/2031 9F 00 00 40 STA $400000,x[$40:0000] A:0000 X:0000 Y:1484 C2/2035 E6 60 INC $60 [$00:0060] A:0000 X:0000 Y:1484 C2/2037 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 Poison C2/203A BB TYX A:0000 X:0000 Y:1484 C2/203B A9 01 00 LDA #$0001 A:0000 X:0000 Y:1484 C2/203E 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/2042 20 E4 23 JSR $23E4 [$7E:23E4] A:0000 X:0000 Y:1484 C2/2045 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 Fear C2/2048 BB TYX A:0000 X:0000 Y:1484 C2/2049 A9 02 00 LDA #$0002 A:0000 X:0000 Y:1484 C2/204C 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/2050 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 *Confuse C2/2053 BB TYX A:0000 X:0000 Y:1484 C2/2054 A9 02 00 LDA #$0002 A:0000 X:0000 Y:1484 ;sets Action Command to "Use Attack" C2/2057 8D 2A 07 STA $072A [$7E:072A] A:0000 X:0000 Y:1484 C2/205A BF 0A 00 40 LDA $40000A,x[$40:000A] A:0000 X:0000 Y:1484 C2/205E 8D 50 07 STA $0750 [$7E:0750] A:0000 X:0000 Y:1484 C2/2061 22 24 A0 C2 JSL $C2A024[$C2:A024] A:0000 X:0000 Y:1484 C2/2065 4C E5 21 JMP $21E5 [$7E:21E5] A:0000 X:0000 Y:1484 Mushroom C2/2068 BB TYX A:0000 X:0000 Y:1484 C2/2069 A9 01 00 LDA #$0001 A:0000 X:0000 Y:1484 C2/206C 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/2070 BF 0E 00 40 LDA $40000E,x[$40:000E] A:0000 X:0000 Y:1484 C2/2074 AA TAX A:0000 X:0000 Y:1484 C2/2075 BF 01 00 40 LDA $400001,x[$40:0001] A:0000 X:0000 Y:1484 C2/2079 29 EF FF AND #$FFEF A:0000 X:0000 Y:1484 C2/207C 9F 01 00 40 STA $400001,x[$40:0001] A:0000 X:0000 Y:1484 C2/2080 A9 04 FF LDA #$FF04 A:0000 X:0000 Y:1484 C2/2083 9F 05 00 40 STA $400005,x[$40:0005] A:0000 X:0000 Y:1484 C2/2087 20 E4 23 JSR $23E4 [$7E:23E4] A:0000 X:0000 Y:1484 C2/208A 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 Scarecrow C2/208D BB TYX A:0000 X:0000 Y:1484 C2/208E A9 02 00 LDA #$0002 A:0000 X:0000 Y:1484 C2/2091 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/2095 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 Invincible/Invulnerable/Red Essence C2/2098 BB TYX A:0000 X:0000 Y:1484 C2/2099 A9 02 00 LDA #$0002 A:0000 X:0000 Y:1484 C2/209C 9F 08 00 40 STA $400008,x[$40:0008] A:0000 X:0000 Y:1484 C2/20A0 4C 5F 0C JMP $0C5F [$7E:0C5F] A:0000 X:0000 Y:1484 ---------------------------------------------------------------- C2/21E5 9C 80 0B STZ $0B80 [$00:0B80] A:FC00 X:0008 Y:2480 C2/21E8 9C 82 0B STZ $0B82 [$00:0B82] A:FC00 X:0008 Y:2480 ALLY: Command to use C2/21EB AD 2A 07 LDA $072A [$00:072A] A:FC00 X:0008 Y:2480 C2/21EE 0A ASL A A:0001 X:2480 Y:2480 C2/21EF AA TAX A:0002 X:2480 Y:2480 C2/21F0 7C F3 21 JMP ($21F3,x)[$C2:2211] A:0002 X:0002 Y:2480 Action Commands FF 21 ;... 11 22 ;Use Defend 57 22 ;Use Weapon 63 22 ;Use Spell 6F 22 ;Use Item 7B 22 ;Run away Action Commands: Use Defense (B button) C2/2211 A6 66 BF 00 00 40 29 BF FF 9F 00 00 40 AE 50 07 ;Load character status BF 41 00 7E ;Load current status buffs 09 04 00 ;Set bit 2 (1 turn Defense) 9F 41 00 7E ;Save back to character BF 3E 00 7E AA BF 0E 00 40 AA BF 01 00 40 29 F7 FF 09 10 00 9F 01 00 40 BF 05 00 40 29 00 FF 09 05 00 ;Set animation sequence to 05 9F 05 00 40 ;Save as still frame E6 60 4C 4F 0C ;Finish turn Action Commands: Use Weapon (A button) C2/2257 22 12 A0 C2 JSL $C2A012[$C2:A012] A:0004 X:0004 Y:2480 ;load weapon/spell/item type and attributes C2/225B A9 06 00 LDA #$0006 A:0000 X:FA80 Y:0732 C2/225E 85 E4 STA $E4 [$00:00E4] A:0006 X:FA80 Y:0732 C2/2260 4C B5 23 JMP $23B5 [$C2:23B5] A:0006 X:FA80 Y:0732 ;load animations Action Commands: Use Spell (Y button) C2/2263 22 12 A0 C2 JSL $C2A012[$C2:A012] A:0006 X:0006 Y:2480 ;load weapon/spell/item type and attributes C2/2267 A9 08 00 LDA #$0008 A:0000 X:FA80 Y:0732 C2/226A 85 E4 STA $E4 [$00:00E4] A:0008 X:FA80 Y:0732 C2/226C 4C B5 23 JMP $23B5 [$C2:23B5] A:0008 X:FA80 Y:0732 ;Load animations Action Commands: Use Item (X button) C2/226F 22 12 A0 C2 JSL $C2A012[$C2:A012] A:0008 X:FA80 Y:0732 C2/2273 A9 0A 00 LDA #$000A A:0000 X:FA80 Y:0732 C2/2276 85 E4 STA $E4 [$00:00E4] A:000A X:FA80 Y:0732 C2/2278 4C B5 23 JMP $23B5 [$C2:23B5] A:000A X:FA80 Y:0732 Action Commands: Run away (B button) C2/227B AF 1E FA 7E ;Checks to see if you can't run ... C2/229E A5 E0 LDA $E0 [$00:00E0] A:0001 X:0000 Y:2600 C2/22A0 C9 01 00 CMP #$0001 A:0001 X:0000 Y:2600 C2/22A3 F0 3B BEQ $3B [$22E0] A:0001 X:0000 Y:2600 ;If run is successful, jump A0 24 00 ;"Couldn't run!" dialogue (NOTE: number is double b/c it's a pointer) 80 03 A0 26 00 ;"Can't run from this" dialogue (NOTE: number is double b/c it's a pointer) 9C 8A 0B ;Displays # dialogue at Y AF 14 00 FA ;load battle message from table 85 E4 A9 FA 00 ;bank # 8D 88 0B 85 E6 B7 E4 8D 86 0B A9 00 00 8D 84 0B A9 03 00 8D 80 0B A6 66 A9 07 00 9F 08 00 40 4C 5F 0C ;processor C2/22E0 A2 00 00 LDX #$0000 A:0001 X:0000 Y:2600 repeat for each character in about to run C2/22E3 86 EE STX $EE [$00:00EE] A:0001 X:0000 Y:2600 C2/22E5 BF 27 01 C2 LDA $C20127,x[$C2:0127] A:0001 X:0000 Y:2600 ;load character slot (FA80, FB00, FB80) C2/22E9 AA TAX A:FA80 X:0000 Y:2600 C2/22EA BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:2600 ;load character mortal status C2/22EE 29 C0 00 AND #$00C0 A:0200 X:FA80 Y:2600 ;check mortal state C2/22F1 D0 21 BNE $21 [$2314] A:0000 X:FA80 Y:2600 ;Jump if down/fainted C2/22F3 BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:0000 X:FA80 Y:2600 ;Load character number C2/22F7 29 FF 00 AND #$00FF A:0002 X:FA80 Y:2600 C2/22FA 85 E2 STA $E2 [$00:00E2] A:0002 X:FA80 Y:2600 C2/22FC A9 0E 00 LDA #$000E A:0002 X:FA80 Y:2600 C2/22FF 85 E4 STA $E4 [$00:00E4] A:000E X:FA80 Y:2600 C2/2301 AF 00 00 F5 LDA $F50000[$F5:0000] A:000E X:FA80 Y:2600 ;Call animation script 35:0000 C2/2305 85 EA STA $EA [$00:00EA] A:0002 X:FA80 Y:2600 C2/2307 A9 F5 00 LDA #$00F5 A:0002 X:FA80 Y:2600 C2/230A 85 EC STA $EC [$00:00EC] A:00F5 X:FA80 Y:2600 C2/230C BF 3E 00 7E LDA $7E003E,x[$7E:FABE] A:00F5 X:FA80 Y:2600 C2/2310 AA TAX A:2500 X:FA80 Y:2600 C2/2311 20 DF 07 JSR $07DF [$C2:07DF] A:2500 X:2500 Y:2600 ; C2/2314 A6 EE LDX $EE [$00:00EE] A:00F5 X:2500 Y:0004 C2/2316 E8 INX A:00F5 X:0000 Y:0004 C2/2317 E8 INX A:00F5 X:0001 Y:0004 C2/2318 E0 05 00 CPX #$0005 A:00F5 X:0002 Y:0004 C2/231B 30 C6 BMI $C6 [$22E3] A:00F5 X:0002 Y:0004 ;repeat for each character in about to run C2/231D A6 66 LDX $66 [$00:0066] A:00F5 X:0006 Y:0000 C2/231F BF 00 00 40 LDA $400000,x[$40:2600] A:00F5 X:2600 Y:0000 C2/2323 29 BF FF AND #$FFBF A:00C8 X:2600 Y:0000 C2/2326 9F 00 00 40 STA $400000,x[$40:2600] A:0088 X:2600 Y:0000 C2/232A BF 02 00 40 LDA $400002,x[$40:2602] A:0088 X:2600 Y:0000 C2/232E 85 60 STA $60 [$00:0060] A:0502 X:2600 Y:0000 C2/2330 BF 04 00 40 LDA $400004,x[$40:2604] A:0502 X:2600 Y:0000 C2/2334 85 62 STA $62 [$00:0062] A:00F5 X:2600 Y:0000 C2/2336 A9 02 00 LDA #$0002 A:00F5 X:2600 Y:0000 C2/2339 0C 00 07 TSB $0700 [$00:0700] A:0002 X:2600 Y:0000 C2/233C 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0002 X:2600 Y:0000 ---------------------------------------------------------------- Load animations C2/23B5 A6 66 LDX $66 [$00:0066] A:0006 X:0000 Y:0732 C2/23B7 9B TXY A:0006 X:2500 Y:0732 C2/23B8 BF 0A 00 40 LDA $40000A,x[$40:250A] A:0006 X:2500 Y:2500 C2/23BC AA TAX A:FA80 X:2500 Y:2500 C2/23BD BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:FA80 X:FA80 Y:2500 C2/23C1 29 FF 00 AND #$00FF A:5500 X:FA80 Y:2500 C2/23C4 85 E2 STA $E2 [$00:00E2] A:0000 X:FA80 Y:2500 C2/23C6 AF 00 00 F5 LDA $F50000[$F5:0000] A:0000 X:FA80 Y:2500 C2/23CA 85 EA STA $EA [$00:00EA] A:0002 X:FA80 Y:2500 C2/23CC A9 F5 00 LDA #$00F5 A:0002 X:FA80 Y:2500 C2/23CF 85 EC STA $EC [$00:00EC] A:00F5 X:FA80 Y:2500 C2/23D1 BB TYX A:00F5 X:FA80 Y:2500 C2/23D2 20 DF 07 JSR $07DF [$C2:07DF] A:00F5 X:2500 Y:2500 ;Weapon/spell/run away animations C2/23D5 BF 02 00 40 LDA $400002,x[$40:2502] A:00F5 X:2500 Y:0000 C2/23D9 85 60 STA $60 [$00:0060] A:0488 X:2500 Y:0000 C2/23DB BF 04 00 40 LDA $400004,x[$40:2504] A:0488 X:2500 Y:0000 C2/23DF 85 62 STA $62 [$00:0062] A:00F5 X:2500 Y:0000 C2/23E1 4C 4F 0C JMP $0C4F [$C2:0C4F] A:00F5 X:2500 Y:0000 ---------------------------------------------------------------- $C2/23E4 A6 66 LDX $66 [$00:0066] A:0001 X:2480 Y:2480 $C2/23E6 BF 0A 00 40 LDA $40000A,x[$40:248A] A:0001 X:2480 Y:2480 $C2/23EA AA TAX A:FA80 X:2480 Y:2480 $C2/23EB BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:FA80 X:FA80 Y:2480 $C2/23EF 89 80 00 BIT #$0080 A:0007 X:FA80 Y:2480 $C2/23F2 D0 01 BNE $01 [$23F5] A:0007 X:FA80 Y:2480 $C2/23F4 60 RTS A:0007 X:FA80 Y:2480 load healing numerals for display? $C2/23F5 BF 45 00 7E LDA $7E0045,x[$7E:FAC5] A:0787 X:FA80 Y:2480 $C2/23F9 85 E0 STA $E0 [$00:00E0] A:8007 X:FA80 Y:2480 $C2/23FB 29 FF 7F AND #$7FFF A:8007 X:FA80 Y:2480 $C2/23FE 85 D0 STA $D0 [$00:00D0] A:0007 X:FA80 Y:2480 $C2/2400 A2 D2 00 LDX #$00D2 A:0007 X:FA80 Y:2480 $C2/2403 20 2E 05 JSR $052E [$C2:052E] A:0007 X:00D2 Y:2480 ;load damage numerals $C2/2406 A5 E0 LDA $E0 [$00:00E0] A:0001 X:00D2 Y:2480 P:enVmxdIzc $C2/2408 10 07 BPL $07 [$2411] A:8007 X:00D2 Y:2480 P:eNVmxdIzc $C2/240A A9 10 10 LDA #$1010 A:8007 X:00D2 Y:2480 P:eNVmxdIzc $C2/240D 04 D2 TSB $D2 [$00:00D2] A:1010 X:00D2 Y:2480 P:enVmxdIzc $C2/240F 04 D4 TSB $D4 [$00:00D4] A:1010 X:00D2 Y:2480 P:enVmxdIZc $C2/2411 A5 D6 LDA $D6 [$00:00D6] A:1010 X:00D2 Y:2480 P:enVmxdIzc $C2/2413 0A ASL A A:0001 X:00D2 Y:2480 P:enVmxdIzc $C2/2414 AA TAX A:0002 X:00D2 Y:2480 P:enVmxdIzc $C2/2415 BF 23 31 C2 LDA $C23123,x[$C2:3125] A:0002 X:0002 Y:2480 P:enVmxdIzc $C2/2419 85 D8 STA $D8 [$00:00D8] A:0000 X:0002 Y:2480 P:enVmxdIZc $C2/241B A6 66 LDX $66 [$00:0066] A:0000 X:0002 Y:2480 P:enVmxdIZc $C2/241D BF 0E 00 40 LDA $40000E,x[$40:248E] A:0000 X:2480 Y:2480 P:enVmxdIzc $C2/2421 AA TAX A:4040 X:2480 Y:2480 P:enVmxdIzc $C2/2422 BF 19 00 40 LDA $400019,x[$40:4059] A:4040 X:4040 Y:2480 P:enVmxdIzc $C2/2426 29 FF 00 AND #$00FF A:0008 X:4040 Y:2480 P:enVmxdIzc $C2/2429 4A LSR A A:0008 X:4040 Y:2480 P:enVmxdIzc $C2/242A 4A LSR A A:0004 X:4040 Y:2480 P:enVmxdIzc $C2/242B AA TAX A:0002 X:4040 Y:2480 P:enVmxdIzc $C2/242C BF 2D 31 C2 LDA $C2312D,x[$C2:312F] A:0002 X:0002 Y:2480 P:enVmxdIzc $C2/2430 85 D9 STA $D9 [$00:00D9] A:000C X:0002 Y:2480 P:enVmxdIzc $C2/2432 A6 66 LDX $66 [$00:0066] A:000C X:0002 Y:2480 P:enVmxdIzc $C2/2434 E2 20 SEP #$20 A:000C X:2480 Y:2480 P:enVmxdIzc $C2/2436 A5 D8 LDA $D8 [$00:00D8] A:000C X:2480 Y:2480 P:enVMxdIzc $C2/2438 18 CLC A:0000 X:2480 Y:2480 P:enVMxdIZc $C2/2439 7F 32 00 40 ADC $400032,x[$40:24B2] A:0000 X:2480 Y:2480 P:enVMxdIZc $C2/243D 85 D8 STA $D8 [$00:00D8] A:0057 X:2480 Y:2480 P:envMxdIzc $C2/243F A5 D9 LDA $D9 [$00:00D9] A:0057 X:2480 Y:2480 P:envMxdIzc $C2/2441 18 CLC A:000C X:2480 Y:2480 P:envMxdIzc $C2/2442 7F 36 00 40 ADC $400036,x[$40:24B6] A:000C X:2480 Y:2480 P:envMxdIzc $C2/2446 85 D9 STA $D9 [$00:00D9] A:00BB X:2480 Y:2480 P:eNvMxdIzc $C2/2448 C2 20 REP #$20 A:00BB X:2480 Y:2480 P:eNvMxdIzc $C2/244A A9 80 00 LDA #$0080 A:00BB X:2480 Y:2480 P:eNvmxdIzc $C2/244D 85 E0 STA $E0 [$00:00E0] A:0080 X:2480 Y:2480 P:envmxdIzc $C2/244F A9 10 00 LDA #$0010 A:0080 X:2480 Y:2480 P:envmxdIzc $C2/2452 85 E2 STA $E2 [$00:00E2] A:0010 X:2480 Y:2480 P:envmxdIzc $C2/2454 A9 00 00 LDA #$0000 A:0010 X:2480 Y:2480 P:envmxdIzc $C2/2457 85 E4 STA $E4 [$00:00E4] A:0000 X:2480 Y:2480 P:envmxdIZc $C2/2459 AF 30 A0 C2 LDA $C2A030[$C2:A030] A:0000 X:2480 Y:2480 P:envmxdIZc $C2/245D 85 EA STA $EA [$00:00EA] A:E654 X:2480 Y:2480 P:eNvmxdIzc $C2/245F A9 C2 00 LDA #$00C2 A:E654 X:2480 Y:2480 P:eNvmxdIzc $C2/2462 85 EC STA $EC [$00:00EC] A:00C2 X:2480 Y:2480 P:envmxdIzc $C2/2464 20 30 07 JSR $0730 [$C2:0730] A:00C2 X:2480 Y:2480 $C2/2467 A5 66 LDA $66 [$00:0066] A:0000 X:2C00 Y:0020 P:envmxdIZc $C2/2469 9F 0C 00 40 STA $40000C,x[$40:2C0C] A:2480 X:2C00 Y:0020 P:envmxdIzc $C2/246D AA TAX A:2480 X:2C00 Y:0020 P:envmxdIzc $C2/246E A5 D2 LDA $D2 [$00:00D2] A:2480 X:2480 Y:0020 P:envmxdIzc $C2/2470 9F 48 00 40 STA $400048,x[$40:24C8] A:1010 X:2480 Y:0020 P:envmxdIzc $C2/2474 A5 D4 LDA $D4 [$00:00D4] A:1010 X:2480 Y:0020 P:envmxdIzc $C2/2476 9F 4A 00 40 STA $40004A,x[$40:24CA] A:17FF X:2480 Y:0020 P:envmxdIzc $C2/247A A5 D8 LDA $D8 [$00:00D8] A:17FF X:2480 Y:0020 P:envmxdIzc $C2/247C 9F 4C 00 40 STA $40004C,x[$40:24CC] A:BB57 X:2480 Y:0020 P:eNvmxdIzc $C2/2480 BF 4F 00 40 LDA $40004F,x[$40:24CF] A:BB57 X:2480 Y:0020 P:eNvmxdIzc $C2/2484 29 FE FF AND #$FFFE A:FF03 X:2480 Y:0020 P:eNvmxdIzc $C2/2487 9F 4F 00 40 STA $40004F,x[$40:24CF] A:FF02 X:2480 Y:0020 P:eNvmxdIzc $C2/248B A2 02 FC LDX #$FC02 A:FF02 X:2480 Y:0020 P:eNvmxdIzc $C2/248E A0 02 32 LDY #$3202 A:FF02 X:FC02 Y:0020 P:eNvmxdIzc $C2/2491 A9 1D 00 LDA #$001D A:FF02 X:FC02 Y:3202 P:envmxdIzc $C2/2494 8B PHB A:001D X:FC02 Y:3202 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:001D X:FC02 Y:3202 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:001C X:FC03 Y:3203 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:001B X:FC04 Y:3204 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:001A X:FC05 Y:3205 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0019 X:FC06 Y:3206 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0018 X:FC07 Y:3207 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0017 X:FC08 Y:3208 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0016 X:FC09 Y:3209 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0015 X:FC0A Y:320A P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0014 X:FC0B Y:320B P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0013 X:FC0C Y:320C P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0012 X:FC0D Y:320D P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0011 X:FC0E Y:320E P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0010 X:FC0F Y:320F P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000F X:FC10 Y:3210 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000E X:FC11 Y:3211 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000D X:FC12 Y:3212 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000C X:FC13 Y:3213 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000B X:FC14 Y:3214 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:000A X:FC15 Y:3215 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0009 X:FC16 Y:3216 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0008 X:FC17 Y:3217 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0007 X:FC18 Y:3218 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0006 X:FC19 Y:3219 P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0005 X:FC1A Y:321A P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0004 X:FC1B Y:321B P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0003 X:FC1C Y:321C P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0002 X:FC1D Y:321D P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0001 X:FC1E Y:321E P:envmxdIzc $C2/2495 54 00 C3 MVN C3 00 A:0000 X:FC1F Y:321F P:envmxdIzc $C2/2498 AB PLB A:FFFF X:FC20 Y:3220 P:envmxdIzc $C2/2499 A9 01 00 LDA #$0001 A:FFFF X:FC20 Y:3220 P:envmxdIZc $C2/249C 8D 00 32 STA $3200 [$00:3200] A:0001 X:FC20 Y:3220 P:envmxdIzc $C2/249F 60 RTS A:0001 X:FC20 Y:3220 P:envmxdIzc ---------------------------------------------------------------- MONSTER: Ailments and what they do C2/2513 A4 66 A2 FF FF E8 4A 90 FC 8A 0A AA C2/251F 7C 22 25 32 25 ;Mute 3D 25 ;Sleep 5E 25 ;Poison 6C 25 ;Fear 77 25 ;*Confuse 8C 25 ;Mushroom 8C 25 ;Scarecrow 97 25 ;Invincible/Invulnerable/Red Essence ---------------------------------------------------------------- *Confuse C2/2577 BB TYX A:0008 X:0008 Y:2400 C2/2578 A9 02 00 LDA #$0002 A:0008 X:2400 Y:2400 ;sets to Physical attack C2/257B 8D 2A 07 STA $072A [$00:072A] A:0002 X:2400 Y:2400 ;saves to be called later at C2/261F C2/257E BF 0A 00 40 LDA $40000A,x[$40:240A] A:0002 X:2400 Y:2400 C2/2582 8D 50 07 STA $0750 [$00:0750] A:FC00 X:2400 Y:2400 C2/2585 22 24 A0 C2 JSL $C2A024[$C2:A024] A:FC00 X:2400 Y:2400 C2/2589 4C 1F 26 JMP $261F [$C2:261F] A:FC00 X:0008 Y:2400 ---------------------------------------------------------------- MONSTER: Attacks/Spells C2/25B6 BB TYX A:0002 X:2400 Y:2400 C2/25B7 BF 0A 00 40 LDA $40000A,x[$40:240A] A:0002 X:2400 Y:2400 C2/25BB AA TAX A:FC00 X:2400 Y:2400 C2/25BC AD 00 07 LDA $0700 [$00:0700] A:FC00 X:FC00 Y:2400 C2/25BF 89 80 00 BIT #$0080 A:E000 X:FC00 Y:2400 C2/25C2 F0 09 BEQ $09 [$25CD] A:E080 X:FC00 Y:2400 C2/25C4 AD 70 07 LDA $0770 [$00:0770] A:E080 X:FC00 Y:2400 C2/25C7 CF 2D 01 C2 CMP $C2012D[$C2:012D] A:FA80 X:FC00 Y:2400 ;load and compare monster pointers to ??? C2/25CB 10 06 BPL $06 [$25D3] A:FA80 X:FC00 Y:2400 C2/25CD 22 06 A0 C2 JSL $C2A006[$C2:A006] A:FA80 X:FC00 Y:2400 ;MONSTER: Turn start C2/25D1 80 04 BRA $04 [$25D7] A:0003 X:FC00 Y:0003 C2/25D7 AD 26 07 LDA $0726 [$00:0726] A:0003 X:FC00 Y:0003 C2/25DA C9 FF FF CMP #$FFFF A:0000 X:FC00 Y:0003 C2/25DD D0 40 BNE $40 [$261F] A:0000 X:FC00 Y:0003 C2/25DF 9C 26 07 STZ $0726 [$00:0726] A:FFFF X:FC00 Y:0001 C2/25E2 A6 66 LDX $66 [$00:0066] A:FFFF X:FC00 Y:0001 C2/25E4 A9 00 00 LDA #$0000 A:FFFF X:2400 Y:0001 C2/25E7 9F 08 00 40 STA $400008,x[$40:2408] A:0000 X:2400 Y:0001 C2/25EB BF 00 00 40 LDA $400000,x[$40:2400] A:0000 X:2400 Y:0001 C2/25EF 29 BF FF AND #$FFBF A:00C9 X:2400 Y:0001 C2/25F2 9F 00 00 40 STA $400000,x[$40:2400] A:0089 X:2400 Y:0001 C2/25F6 BF 0A 00 40 LDA $40000A,x[$40:240A] A:0089 X:2400 Y:0001 C2/25FA AA TAX A:FC00 X:2400 Y:0001 C2/25FB BF 60 00 7E LDA $7E0060,x[$7E:FC60] A:FC00 X:FC00 Y:0001 C2/25FF 29 FF 7F AND #$7FFF A:8001 X:FC00 Y:0001 C2/2602 9F 60 00 7E STA $7E0060,x[$7E:FC60] A:0001 X:FC00 Y:0001 C2/2606 BF 00 00 7E LDA $7E0000,x[$7E:FC00] A:0001 X:FC00 Y:0001 C2/260A 29 C0 00 AND #$00C0 A:0100 X:FC00 Y:0001 C2/260D C9 C0 00 CMP #$00C0 A:0000 X:FC00 Y:0001 C2/2610 F0 05 BEQ $05 [$2617] A:0000 X:FC00 Y:0001 ;If target alive, branch to hit routines C2/2612 E6 60 INC $60 [$00:0060] A:0000 X:FC00 Y:0001 C2/2614 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0000 X:FC00 Y:0001 C2/261F AD 2A 07 LDA $072A [$00:072A] A:0000 X:FC00 Y:0003 C2/2622 0A ASL A A:0003 X:FC00 Y:0003 C2/2623 AA TAX A:0006 X:FC00 Y:0003 C2/2624 7C 27 26 JMP ($2627,x)[$C2:2653] A:0006 X:0006 Y:0003 3D 26 ;Wait 1 turn 3D 26 ;Wait 1 turn 4B 26 ;Physical attacks (MISS based on bit 7 of 7E:0045 not being set) 53 26 ;Magic / Spell attacks 3D 26 ;Wait 1 turn 5B 26 ;Displays dialogue 3D 26 ;Wait 1 turn A9 26 ;Freeze D8 26 ;Re-enters battle, then softlocks 41 27 ;Exits entire battle 5D 27 ;Monster runs from battle Physical attacks (MISS based on bit 7 of 7E:0045 not being set) C2/264B A9 06 00 LDA #$0006 A:0004 X:0004 Y:2400 C2/264E 85 E4 STA $E4 [$00:00E4] A:0006 X:0004 Y:2400 C2/2650 4C 9E 27 JMP $279E [$C2:279E] A:0006 X:0004 Y:2400 ;Play Command Magic / spell attacks C2/2653 A9 08 00 LDA #$0008 A:0006 X:0006 Y:0003 C2/2656 85 E4 STA $E4 [$00:00E4] A:0008 X:0006 Y:0003 C2/2658 4C 9E 27 JMP $279E [$C2:279E] A:0008 X:0006 Y:0003 ;Play Command Play Command C2/279E A6 66 LDX $66 [$00:0066] A:0008 X:0006 Y:0003 C2/27A0 A9 00 00 LDA #$0000 A:0008 X:2400 Y:0003 C2/27A3 9F 08 00 40 STA $400008,x[$40:2408] A:0000 X:2400 Y:0003 C2/27A7 9B TXY A:0000 X:2400 Y:0003 C2/27A8 BF 0A 00 40 LDA $40000A,x[$40:240A] A:0000 X:2400 Y:2400 C2/27AC AA TAX A:FC00 X:2400 Y:2400 C2/27AD BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:FC00 X:FC00 Y:2400 C2/27B1 29 FF 00 AND #$00FF A:5501 X:FC00 Y:2400 C2/27B4 09 00 01 ORA #$0100 A:0001 X:FC00 Y:2400 C2/27B7 85 E2 STA $E2 [$00:00E2] A:0101 X:FC00 Y:2400 C2/27B9 AF 00 00 F5 LDA $F50000[$F5:0000] A:0101 X:FC00 Y:2400 C2/27BD 85 EA STA $EA [$00:00EA] A:0002 X:FC00 Y:2400 C2/27BF A9 F5 00 LDA #$00F5 A:0002 X:FC00 Y:2400 C2/27C2 85 EC STA $EC [$00:00EC] A:00F5 X:FC00 Y:2400 C2/27C4 BB TYX A:00F5 X:FC00 Y:2400 C2/27C5 20 DF 07 JSR $07DF [$C2:07DF] A:00F5 X:2400 Y:2400 ;Weapon/spell/run away animations C2/27C8 BF 02 00 40 LDA $400002,x[$40:2402] A:00F5 X:2400 Y:0202 C2/27CC 85 60 STA $60 [$00:0060] A:07A2 X:2400 Y:0202 C2/27CE BF 04 00 40 LDA $400004,x[$40:2404] A:07A2 X:2400 Y:0202 C2/27D2 85 62 STA $62 [$00:0062] A:00F5 X:2400 Y:0202 C2/27D4 4C 5F 0C JMP $0C5F [$C2:0C5F] A:00F5 X:2400 Y:0202 ---------------------------------------------------------------- Loads animations (also Set/Read Lucky Jewel counter) C2/299B A6 EE LDX $EE [$00:00EE] A:00F5 X:0000 Y:0002 C2/299D E2 20 SEP #$20 A:00F5 X:2C0F Y:0002 C2/299F A7 EA LDA [$EA] [$F5:E9F1] A:00F5 X:2C0F Y:0002 ;Loads animation (load Lucky Jewel max usage) C2/29A1 9F 60 00 40 STA $400060,x[$40:2C6F] A:000B X:2C0F Y:0002 ;store to counter C2/29A5 C2 20 REP #$20 A:000B X:2C0F Y:0002 C2/29A7 A5 60 LDA $60 [$00:0060] A:000B X:2C0F Y:0002 C2/29A9 18 CLC A:E9EF X:2C0F Y:0002 C2/29AA 69 04 00 ADC #$0004 A:E9EF X:2C0F Y:0002 C2/29AD 85 60 STA $60 [$00:0060] A:E9F3 X:2C0F Y:0002 C2/29AF 4C 4F 0C JMP $0C4F [$00:0C4F] A:E9F3 X:2C0F Y:0002 C2/2C19 A6 EE LDX $EE [$00:00EE] A:00F5 X:0000 Y:0002 C2/2C1B E2 20 SEP #$20 A:00F5 X:2C0F Y:0002 C2/2C1D BF 60 00 40 LDA $400060,x[$40:2C6F] A:00F5 X:2C0F Y:0002 ;load Lucky Jewel counter C2/2C21 C7 EA CMP [$EA] [$F5:E9F7] A:0001 X:2C0F Y:0002 ;check if counter at 1 C2/2C23 C2 20 REP #$20 A:0001 X:2C0F Y:0002 C2/2C25 D0 0B BNE $0B [$2C32] A:0001 X:2C0F Y:0002 ;branch if not at 1 C2/2C27 A5 60 LDA $60 [$00:0060] A:0001 X:2C0F Y:0002 C2/2C29 18 CLC A:E9F5 X:2C0F Y:0002 C2/2C2A 69 06 00 ADC #$0006 A:E9F5 X:2C0F Y:0002 C2/2C2D 85 60 STA $60 [$00:0060] A:E9FB X:2C0F Y:0002 C2/2C2F 4C 4F 0C JMP $0C4F [$00:0C4F] A:E9FB X:2C0F Y:0002 ---------------------------------------------------------------- Set/Read Lamb's Lure Counter C2/2C07 A0 01 00 LDY #$0001 A:004C X:004C Y:0002 C2/2C0A B7 60 LDA [$60],y[$F5:E99F] A:004C X:004C Y:0001 ;load Lamb's Lure max usage C2/2C0C 29 FF 00 AND #$00FF A:530A X:004C Y:0001 C2/2C0F 85 E0 STA $E0 [$00:00E0] A:000A X:004C Y:0001 C2/2C11 C8 INY A:000A X:004C Y:0001 C2/2C12 B7 60 LDA [$60],y[$F5:E9A0] A:000A X:004C Y:0002 C2/2C14 85 E2 STA $E2 [$00:00E2] A:0053 X:004C Y:0002 C2/2C16 20 B2 29 JSR $29B2 [$C2:29B2] A:0053 X:004C Y:0002 Set/Read Mystery Egg Counter C2/2C6D A0 01 00 LDY #$0001 A:0050 X:0050 Y:0001 C2/2C70 B7 60 LDA [$60],y[$F5:E9AC] A:0050 X:0050 Y:0001 C2/2C72 29 FF 00 AND #$00FF A:0A0B X:0050 Y:0001 C2/2C75 85 E0 STA $E0 [$00:00E0] A:000B X:0050 Y:0001 C2/2C77 C8 INY A:000B X:0050 Y:0001 C2/2C78 B7 60 LDA [$60],y[$F5:E9AD] A:000B X:0050 Y:0002 C2/2C7A 85 E2 STA $E2 [$00:00E2] A:000A X:0050 Y:0002 C2/2C7C 20 B2 29 JSR $29B2 [$C2:29B2] A:000A X:0050 Y:0002 Check max usage for Mystery Egg/Lamb's Lure C2/2C7F A6 EE LDX $EE [$00:00EE] A:00F5 X:0000 Y:0002 C2/2C81 E2 20 SEP #$20 A:00F5 X:2C8E Y:0002 C2/2C83 BF 60 00 40 LDA $400060,x[$40:2CEE] A:00F5 X:2C8E Y:0002 ;load Mystery Egg/Lamb's Lure counter C2/2C87 C7 EA CMP [$EA] [$F5:E694] A:0008 X:2C8E Y:0002 ;compare to maximum for morph C2/2C89 C2 20 REP #$20 A:0008 X:2C8E Y:0002 C2/2C8B 30 0B BMI $0B [$2C98] A:0008 X:2C8E Y:0002 ;branch if not at maximum C2/2C98 A0 04 00 LDY #$0004 A:0008 X:2C8E Y:0002 C2/2C9B B7 60 LDA [$60],y[$F5:E696] A:0008 X:2C8E Y:0004 C2/2C9D 85 60 STA $60 [$00:0060] A:E6A4 X:2C8E Y:0004 C2/2C9F 4C 4F 0C JMP $0C4F [$00:0C4F] A:E6A4 X:2C8E Y:0004 C2/2DE9 A0 01 00 LDY #$0001 A:0060 X:0060 Y:0002 C2/2DEC B7 60 LDA [$60],y[$F5:E9AA] A:0060 X:0060 Y:0001 C2/2DEE 29 0F 00 AND #$000F A:280B X:0060 Y:0001 C2/2DF1 18 CLC A:000B X:0060 Y:0001 C2/2DF2 65 66 ADC $66 [$00:0066] A:000B X:0060 Y:0001 C2/2DF4 AA TAX A:2C0B X:0060 Y:0001 C2/2DF5 E2 20 SEP #$20 A:2C0B X:2C0B Y:0001 C2/2DF7 BF 60 00 40 LDA $400060,x[$40:2C6B] A:2C0B X:2C0B Y:0001 ;load Mystery Egg counter C2/2DFB 1A INC A A:2C00 X:2C0B Y:0001 ;increment C2/2DFC 9F 60 00 40 STA $400060,x[$40:2C6B] A:2C01 X:2C0B Y:0001 ;store to counter C2/2E00 C2 20 REP #$20 A:2C01 X:2C0B Y:0001 C2/2E02 A5 60 LDA $60 [$00:0060] A:2C01 X:2C0B Y:0001 C2/2E04 18 CLC A:E9A9 X:2C0B Y:0001 C2/2E05 69 02 00 ADC #$0002 A:E9A9 X:2C0B Y:0001 C2/2E08 85 60 STA $60 [$00:0060] A:E9AB X:2C0B Y:0001 C2/2E0A 4C 4F 0C JMP $0C4F [$00:0C4F] A:E9AB X:2C0B Y:0001 ---------------------------------------------------------------- DOC_ANI-CODE: <3A> 57 2F *playback animation: target gets hit C2/2F57 A2 02 FC LDX #$FC02 A:0074 X:0074 Y:0001 C2/2F5A A0 02 32 LDY #$3202 A:0074 X:FC02 Y:0001 C2/2F5D A9 1D 00 LDA #$001D A:0074 X:FC02 Y:3202 C2/2F60 8B PHB A:001D X:FC02 Y:3202 C2/2F61 54 00 C3 MVN C3 00 A:001D X:FC02 Y:3202 C2/2F61 54 00 C3 MVN C3 00 A:001C X:FC03 Y:3203 C2/2F61 54 00 C3 MVN C3 00 A:001B X:FC04 Y:3204 C2/2F61 54 00 C3 MVN C3 00 A:001A X:FC05 Y:3205 C2/2F61 54 00 C3 MVN C3 00 A:0019 X:FC06 Y:3206 C2/2F61 54 00 C3 MVN C3 00 A:0018 X:FC07 Y:3207 C2/2F61 54 00 C3 MVN C3 00 A:0017 X:FC08 Y:3208 C2/2F61 54 00 C3 MVN C3 00 A:0016 X:FC09 Y:3209 C2/2F61 54 00 C3 MVN C3 00 A:0015 X:FC0A Y:320A C2/2F61 54 00 C3 MVN C3 00 A:0014 X:FC0B Y:320B C2/2F61 54 00 C3 MVN C3 00 A:0013 X:FC0C Y:320C C2/2F61 54 00 C3 MVN C3 00 A:0012 X:FC0D Y:320D C2/2F61 54 00 C3 MVN C3 00 A:0011 X:FC0E Y:320E C2/2F61 54 00 C3 MVN C3 00 A:0010 X:FC0F Y:320F C2/2F61 54 00 C3 MVN C3 00 A:000F X:FC10 Y:3210 C2/2F61 54 00 C3 MVN C3 00 A:000E X:FC11 Y:3211 C2/2F61 54 00 C3 MVN C3 00 A:000D X:FC12 Y:3212 C2/2F61 54 00 C3 MVN C3 00 A:000C X:FC13 Y:3213 C2/2F61 54 00 C3 MVN C3 00 A:000B X:FC14 Y:3214 C2/2F61 54 00 C3 MVN C3 00 A:000A X:FC15 Y:3215 C2/2F61 54 00 C3 MVN C3 00 A:0009 X:FC16 Y:3216 C2/2F61 54 00 C3 MVN C3 00 A:0008 X:FC17 Y:3217 C2/2F61 54 00 C3 MVN C3 00 A:0007 X:FC18 Y:3218 C2/2F61 54 00 C3 MVN C3 00 A:0006 X:FC19 Y:3219 C2/2F61 54 00 C3 MVN C3 00 A:0005 X:FC1A Y:321A C2/2F61 54 00 C3 MVN C3 00 A:0004 X:FC1B Y:321B C2/2F61 54 00 C3 MVN C3 00 A:0003 X:FC1C Y:321C C2/2F61 54 00 C3 MVN C3 00 A:0002 X:FC1D Y:321D C2/2F61 54 00 C3 MVN C3 00 A:0001 X:FC1E Y:321E C2/2F61 54 00 C3 MVN C3 00 A:0000 X:FC1F Y:321F C2/2F64 AB PLB A:FFFF X:FC20 Y:3220 C2/2F65 A9 01 00 LDA #$0001 A:FFFF X:FC20 Y:3220 C2/2F68 8D 00 32 STA $3200 [$00:3200] A:0001 X:FC20 Y:3220 C2/2F6B A2 00 00 LDX #$0000 A:0001 X:FC20 Y:3220 C2/2F6E 86 E0 STX $E0 [$00:00E0] A:0001 X:0000 Y:3220 C2/2F70 86 EE STX $EE [$00:00EE] A:0001 X:0000 Y:3220 C2/2F72 BD 30 07 LDA $0730,x[$00:0730] A:0001 X:0000 Y:3220 C2/2F75 F0 47 BEQ $47 [$2FBE] A:FA80 X:0000 Y:3220 C2/2F77 AA TAX A:FA80 X:0000 Y:3220 C2/2F78 CF 2D 01 C2 CMP $C2012D[$C2:012D] A:FA80 X:FA80 Y:3220 C2/2F7C 10 09 BPL $09 [$2F87] A:FA80 X:FA80 Y:3220 C2/2F7E BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:FA80 X:FA80 Y:3220 C2/2F82 29 FF 00 AND #$00FF A:5500 X:FA80 Y:3220 C2/2F85 80 0A BRA $0A [$2F91] A:0000 X:FA80 Y:3220 C2/2F91 85 E2 STA $E2 [$00:00E2] A:0000 X:FA80 Y:3220 C2/2F93 A9 02 00 LDA #$0002 A:0000 X:FA80 Y:3220 C2/2F96 85 E4 STA $E4 [$00:00E4] A:0002 X:FA80 Y:3220 C2/2F98 AF 00 00 F5 LDA $F50000[$F5:0000] A:0002 X:FA80 Y:3220 C2/2F9C 85 EA STA $EA [$00:00EA] A:0002 X:FA80 Y:3220 C2/2F9E A9 F5 00 LDA #$00F5 A:0002 X:FA80 Y:3220 C2/2FA1 85 EC STA $EC [$00:00EC] A:00F5 X:FA80 Y:3220 C2/2FA3 BF 3E 00 7E LDA $7E003E,x[$7E:FABE] A:00F5 X:FA80 Y:3220 C2/2FA7 AA TAX A:2480 X:FA80 Y:3220 C2/2FA8 E4 66 CPX $66 [$00:0066] A:2480 X:2480 Y:3220 C2/2FAA D0 09 BNE $09 [$2FB5] A:2480 X:2480 Y:3220 C2/2FB5 20 DF 07 JSR $07DF [$C2:07DF] A:2480 X:2480 Y:3220 ;Weapon/spell/run away animations C2/2FB8 A6 EE LDX $EE [$00:00EE] A:00F5 X:2480 Y:0000 C2/2FBA E8 INX A:00F5 X:0000 Y:0000 C2/2FBB E8 INX A:00F5 X:0001 Y:0000 C2/2FBC 80 B2 BRA $B2 [$2F70] A:00F5 X:0002 Y:0000 C2/2FBE A5 EE LDA $EE [$00:00EE] A:0000 X:0002 Y:0000 C2/2FC0 F0 0C BEQ $0C [$2FCE] A:0002 X:0002 Y:0000 C2/2FC2 AD 00 07 LDA $0700 [$00:0700] A:0002 X:0002 Y:0000 C2/2FC5 09 00 08 ORA #$0800 A:E002 X:0002 Y:0000 C2/2FC8 29 FF F8 AND #$F8FF A:E802 X:0002 Y:0000 C2/2FCB 8D 00 07 STA $0700 [$00:0700] A:E802 X:0002 Y:0000 C2/2FCE A5 E0 LDA $E0 [$00:00E0] A:E802 X:0002 Y:0000 C2/2FD0 D0 05 BNE $05 [$2FD7] A:0000 X:0002 Y:0000 C2/2FD2 E6 60 INC $60 [$00:0060] A:0000 X:0002 Y:0000 C2/2FD4 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0000 X:0002 Y:0000 ---------------------------------------------------------------- spell defense timing??? processor C2/2FF4 A0 01 00 LDY #$0001 A:0078 X:0078 Y:0002 P:enVmxdIzc $C2/2FF7 B7 60 LDA [$60],y[$F5:07CF] A:0078 X:0078 Y:0001 P:enVmxdIzc $C2/2FF9 2C 00 07 BIT $0700 [$00:0700] A:0800 X:0078 Y:0001 P:enVmxdIzc $C2/2FFC F0 03 BEQ $03 [$3001] A:0800 X:0078 Y:0001 P:eNVmxdIzc $C2/2FFE 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0800 X:0078 Y:0001 ---------------------------------------------------------------- Damage display C2/3053 BF 45 00 7E LDA $7E0045,x[$7E:FC45] A:0180 X:FC00 Y:2400 C2/3057 85 E0 STA $E0 [$00:00E0] A:0001 X:FC00 Y:2400 C2/3059 29 FF 7F AND #$7FFF A:0001 X:FC00 Y:2400 C2/305C 85 D0 STA $D0 [$00:00D0] A:0001 X:FC00 Y:2400 C2/305E A2 D2 00 LDX #$00D2 A:0001 X:FC00 Y:2400 C2/3061 20 2E 05 JSR $052E [$C2:052E] A:0001 X:00D2 Y:2400 ;load damage numerals C2/3064 A5 E0 LDA $E0 [$00:00E0] A:0001 X:00D2 Y:2400 C2/3066 10 07 BPL $07 [$306F] A:0001 X:00D2 Y:2400 A9 10 10 ;Set tiles to read Green (healing) 04 D2 ;test and set bits 04 D4 ;test and set bits C2/306F A5 D6 LDA $D6 [$00:00D6] A:0001 X:00D2 Y:2400 C2/3071 0A ASL A A:0001 X:00D2 Y:2400 C2/3072 AA TAX A:0002 X:00D2 Y:2400 C2/3073 BF 23 31 C2 LDA $C23123,x[$C2:3125] A:0002 X:0002 Y:2400 C2/3077 85 D8 STA $D8 [$00:00D8] A:0000 X:0002 Y:2400 C2/3079 4C A4 30 JMP $30A4 [$C2:30A4] A:0000 X:0002 Y:2400 ---------------------------------------------------------------- C2/3095 A9 0A 0B ;MISS: Tiles "M", "I" C2/3097 85 D2 C2/309A A9 1A 1A ;MISS: Tiles "S", "S" C2/309D 85 D4 C2/309F A9 0B 00 ;set Xpos coordinates C2/30A2 85 D8 ; ---------------------------------------------------------------- C2/30A4 A6 66 LDX $66 [$00:0066] A:0000 X:0002 Y:2400 C2/30A6 BF 0E 00 40 LDA $40000E,x[$40:240E] A:0000 X:2400 Y:2400 C2/30AA AA TAX A:4000 X:2400 Y:2400 C2/30AB BF 19 00 40 LDA $400019,x[$40:4019] A:4000 X:4000 Y:2400 C2/30AF 29 FF 00 AND #$00FF A:0008 X:4000 Y:2400 C2/30B2 4A LSR A A:0008 X:4000 Y:2400 C2/30B3 4A LSR A A:0004 X:4000 Y:2400 C2/30B4 AA TAX A:0002 X:4000 Y:2400 C2/30B5 BF 2D 31 C2 LDA $C2312D,x[$C2:312F] A:0002 X:0002 Y:2400 C2/30B9 85 D9 STA $D9 [$00:00D9] A:000C X:0002 Y:2400 C2/30BB A6 66 LDX $66 [$00:0066] A:000C X:0002 Y:2400 C2/30BD E2 20 SEP #$20 A:000C X:2400 Y:2400 C2/30BF A5 D8 LDA $D8 [$00:00D8] A:000C X:2400 Y:2400 C2/30C1 18 CLC A:0000 X:2400 Y:2400 C2/30C2 7F 32 00 40 ADC $400032,x[$40:2432] A:0000 X:2400 Y:2400 C2/30C6 85 D8 STA $D8 [$00:00D8] A:00B0 X:2400 Y:2400 C2/30C8 A5 D9 LDA $D9 [$00:00D9] A:00B0 X:2400 Y:2400 C2/30CA 18 CLC A:000C X:2400 Y:2400 C2/30CB 7F 36 00 40 ADC $400036,x[$40:2436] A:000C X:2400 Y:2400 C2/30CF 85 D9 STA $D9 [$00:00D9] A:0084 X:2400 Y:2400 C2/30D1 C2 20 REP #$20 A:0084 X:2400 Y:2400 C2/30D3 A9 80 00 LDA #$0080 A:0084 X:2400 Y:2400 C2/30D6 85 E0 STA $E0 [$00:00E0] A:0080 X:2400 Y:2400 C2/30D8 A9 10 00 LDA #$0010 A:0080 X:2400 Y:2400 C2/30DB 85 E2 STA $E2 [$00:00E2] A:0010 X:2400 Y:2400 C2/30DD A9 00 00 LDA #$0000 A:0010 X:2400 Y:2400 C2/30E0 85 E4 STA $E4 [$00:00E4] A:0000 X:2400 Y:2400 C2/30E2 AF 30 A0 C2 LDA $C2A030[$C2:A030] A:0000 X:2400 Y:2400 C2/30E6 85 EA STA $EA [$00:00EA] A:E654 X:2400 Y:2400 C2/30E8 A9 C2 00 LDA #$00C2 A:E654 X:2400 Y:2400 C2/30EB 85 EC STA $EC [$00:00EC] A:00C2 X:2400 Y:2400 C2/30ED 20 30 07 JSR $0730 [$C2:0730] A:00C2 X:2400 Y:2400 C2/30F0 A5 66 LDA $66 [$00:0066] A:0000 X:2D00 Y:0020 C2/30F2 9F 0C 00 40 STA $40000C,x[$40:2D0C] A:2400 X:2D00 Y:0020 C2/30F6 AA TAX A:2400 X:2D00 Y:0020 C2/30F7 A5 D2 LDA $D2 [$00:00D2] A:2400 X:2400 Y:0020 C2/30F9 9F 48 00 40 STA $400048,x[$40:2448] A:0000 X:2400 Y:0020 C2/30FD A5 D4 LDA $D4 [$00:00D4] A:0000 X:2400 Y:0020 C2/30FF 9F 4A 00 40 STA $40004A,x[$40:244A] A:01FF X:2400 Y:0020 C2/3103 A5 D8 LDA $D8 [$00:00D8] A:01FF X:2400 Y:0020 C2/3105 9F 4C 00 40 STA $40004C,x[$40:244C] A:84B0 X:2400 Y:0020 C2/3109 BF 4F 00 40 LDA $40004F,x[$40:244F] A:84B0 X:2400 Y:0020 C2/310D 29 FE FF AND #$FFFE A:FF01 X:2400 Y:0020 C2/3110 9F 4F 00 40 STA $40004F,x[$40:244F] A:FF00 X:2400 Y:0020 C2/3114 E6 60 INC $60 [$00:0060] A:FF00 X:2400 Y:0020 C2/3116 4C 4F 0C JMP $0C4F [$C2:0C4F] A:FF00 X:2400 Y:0020 ---------------------------------------------------------------- Damage/Healing Number coordinates for display? C2/3123 ---------------------------------------------------------------- DOC_ANI-CODE: *playback sequence for object's current sprite (set by command 03) $C2/32CA A6 66 LDX $66 [$00:0066] A:0086 X:0086 Y:0001 P:envmxdIzc $C2/32CC A0 01 00 LDY #$0001 A:0086 X:2480 Y:0001 P:envmxdIzc $C2/32CF B7 60 LDA [$60],y[$F5:0478] A:0086 X:2480 Y:0001 P:envmxdIzc $C2/32D1 A8 TAY A:0407 X:2480 Y:0001 P:envmxdIzc $C2/32D2 4A LSR A A:0407 X:2480 Y:0407 P:envmxdIzc $C2/32D3 29 18 00 AND #$0018 A:0203 X:2480 Y:0407 P:envmxdIzC $C2/32D6 85 E0 STA $E0 [$00:00E0] A:0000 X:2480 Y:0407 P:envmxdIZC $C2/32D8 98 TYA A:0000 X:2480 Y:0407 P:envmxdIZC $C2/32D9 29 0F 00 AND #$000F A:0407 X:2480 Y:0407 P:envmxdIzC $C2/32DC 85 E2 STA $E2 [$00:00E2] A:0007 X:2480 Y:0407 P:envmxdIzC $C2/32DE 98 TYA A:0007 X:2480 Y:0407 P:envmxdIzC $C2/32DF 4A LSR A A:0407 X:2480 Y:0407 P:envmxdIzC $C2/32E0 29 40 00 AND #$0040 A:0203 X:2480 Y:0407 P:envmxdIzC $C2/32E3 85 E4 STA $E4 [$00:00E4] A:0000 X:2480 Y:0407 P:envmxdIZC $C2/32E5 BF 0E 00 40 LDA $40000E,x[$40:248E] A:0000 X:2480 Y:0407 P:envmxdIZC $C2/32E9 AA TAX A:4040 X:2480 Y:0407 P:envmxdIzC $C2/32EA BF 01 00 40 LDA $400001,x[$40:4041] A:4040 X:4040 Y:0407 P:envmxdIzC $C2/32EE 29 E3 FF AND #$FFE3 A:8010 X:4040 Y:0407 P:eNvmxdIzC $C2/32F1 05 E0 ORA $E0 [$00:00E0] A:8000 X:4040 Y:0407 P:eNvmxdIzC $C2/32F3 9F 01 00 40 STA $400001,x[$40:4041] A:8000 X:4040 Y:0407 P:eNvmxdIzC $C2/32F7 A5 E2 LDA $E2 [$00:00E2] A:8000 X:4040 Y:0407 P:eNvmxdIzC $C2/32F9 09 00 FF ORA #$FF00 A:0007 X:4040 Y:0407 P:envmxdIzC $C2/32FC 9F 05 00 40 STA $400005,x[$40:4045] A:FF07 X:4040 Y:0407 P:eNvmxdIzC $C2/3300 BF 2D 00 40 LDA $40002D,x[$40:406D] A:FF07 X:4040 Y:0407 P:eNvmxdIzC $C2/3304 29 BF FF AND #$FFBF A:0022 X:4040 Y:0407 P:envmxdIzC $C2/3307 05 E4 ORA $E4 [$00:00E4] A:0022 X:4040 Y:0407 P:envmxdIzC $C2/3309 9F 2D 00 40 STA $40002D,x[$40:406D] A:0022 X:4040 Y:0407 P:envmxdIzC $C2/330D A5 60 LDA $60 [$00:0060] A:0022 X:4040 Y:0407 P:envmxdIzC $C2/330F 18 CLC A:0477 X:4040 Y:0407 P:envmxdIzC $C2/3310 69 02 00 ADC #$0002 A:0477 X:4040 Y:0407 P:envmxdIzc $C2/3313 85 60 STA $60 [$00:0060] A:0479 X:4040 Y:0407 P:envmxdIzc $C2/3315 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0479 X:4040 Y:0407 P:envmxdIzc ---------------------------------------------------------------- DOC_ANI-CODE: <46> 6B 33 Check for mortal status, if all down set game over $C2/336B A6 66 LDX $66 [$00:0066] A:008C X:008C Y:0001 P:enVmxdIzc $C2/336D BF 00 00 40 LDA $400000,x[$40:2480] A:008C X:2480 Y:0001 P:enVmxdIzc $C2/3371 29 DF FF AND #$FFDF A:00A8 X:2480 Y:0001 P:enVmxdIzc $C2/3374 9F 00 00 40 STA $400000,x[$40:2480] A:0088 X:2480 Y:0001 P:enVmxdIzc $C2/3378 BF 50 00 40 LDA $400050,x[$40:24D0] A:0088 X:2480 Y:0001 P:enVmxdIzc $C2/337C C9 FF FF CMP #$FFFF A:FFFF X:2480 Y:0001 P:eNVmxdIzc $C2/337F D0 05 BNE $05 [$3386] A:FFFF X:2480 Y:0001 P:enVmxdIZC $C2/3381 E6 60 INC $60 [$00:0060] A:FFFF X:2480 Y:0001 P:enVmxdIZC $C2/3383 4C 4F 0C JMP $0C4F [$C2:0C4F] A:FFFF X:2480 Y:0001 P:enVmxdIzC ---------------------------------------------------------------- Read button press for battle menu C2/351F AE 50 07 LDX $0750 [$00:0750] A:0004 X:0004 Y:2100 C2/3522 AD 7C 0B LDA $0B7C [$00:0B7C] A:0004 X:FA80 Y:2100 C2/3525 89 04 00 BIT #$0004 A:0000 X:FA80 Y:2100 C2/3528 D0 05 BNE $05 [$352F] A:0000 X:FA80 Y:2100 C2/352A AD 14 30 LDA $3014 [$00:3014] A:0000 X:FA80 Y:2100 ;load joypad register C2/352D D0 03 BNE $03 [$3532] A:4000 X:FA80 Y:2100 ;branch if not zero 4C 5F 0C C2/3532 89 80 00 BIT #$0080 A:4000 X:FA80 Y:2100 ;check A-button bit C2/3535 F0 05 BEQ $05 [$353C] A:4000 X:FA80 Y:2100 ;branch if not set C2/3537 A9 02 00 LDA #$0002 A:4000 X:FA80 Y:2100 ;load 'attack' menu constant C2/353A 80 21 BRA $21 [$355D] A:0002 X:FA80 Y:2100 C2/353C 89 00 40 BIT #$4000 A:4000 X:FA80 Y:2100 ;check Y-button bit C2/353F F0 05 BEQ $05 [$3546] A:4000 X:FA80 Y:2100 ;branch if not set C2/3541 A9 03 00 LDA #$0003 A:4000 X:FA80 Y:2100 ;load 'special' menu constant C2/3544 80 17 BRA $17 [$355D] A:0003 X:FA80 Y:2100 C2/3546 89 40 00 BIT #$0040 A:4000 X:FA80 Y:2100 ;check X-button bit C2/3549 F0 05 BEQ $05 [$3546] A:4000 X:FA80 Y:2100 ;branch if not set C2/355D 8D 2A 07 STA $072A [$00:072A] A:0003 X:FA80 Y:2100 ;set as current menu access C2/3560 AA TAX A:0003 X:FA80 Y:2100 C2/3561 BF 91 36 C2 LDA $C23691,x[$C2:3694] A:0003 X:0003 Y:2100 ;load 4-button menu constant C2/3565 29 FF 00 AND #$00FF A:0206 X:0003 Y:2100 ;isolate it C2/3568 85 E0 STA $E0 [$00:00E0] A:0006 X:0003 Y:2100 C2/356A BB TYX A:0006 X:0003 Y:2100 C2/356B BF 0E 00 40 LDA $40000E,x[$40:210E] A:0006 X:2100 Y:2100 C2/356F AA TAX A:4240 X:2100 Y:2100 C2/3570 BF 05 00 40 LDA $400005,x[$40:4245] A:4240 X:4240 Y:2100 C2/3574 29 00 FF AND #$FF00 A:0000 X:4240 Y:2100 C2/3577 05 E0 ORA $E0 [$00:00E0] A:0000 X:4240 Y:2100 C2/3579 9F 05 00 40 STA $400005,x[$40:4245] A:0006 X:4240 Y:2100 C2/357D BB TYX A:0006 X:4240 Y:2100 C2/357E A9 03 00 LDA #$0003 A:0006 X:2100 Y:2100 C2/3581 9F 08 00 40 STA $400008,x[$40:2108] A:0003 X:2100 Y:2100 C2/3585 4C 5F 0C JMP $0C5F [$00:0C5F] A:0003 X:2100 Y:2100 C2/59E7 AD 50 07 LDA $0750 [$00:0750] A:0000 X:0000 Y:2400 C2/59EA AA TAX A:FB00 X:0000 Y:2400 C2/59EB BF 44 00 7E LDA $7E0044,x[$7E:FB44] A:FB00 X:FB00 Y:2400 C2/59EF 89 20 00 BIT #$0020 A:5530 X:FB00 Y:2400 C2/59F2 F0 00 BEQ $46 [$5A3A] A:5530 X:FB00 Y:2400 C2/59F4 29 DF FF AND #$FFDF A:5530 X:FB00 Y:2400 C2/59F7 9F 44 00 7E STA $7E0044,x[$7E:FB44] A:5510 X:FB00 Y:2400 C2/59FB A9 80 00 LDA #$0080 A:5510 X:FB00 Y:2400 C2/59FE 85 E0 STA $E0 [$00:00E0] A:0080 X:FB00 Y:2400 C2/5A00 A9 1A 00 LDA #$001A A:0080 X:FB00 Y:2400 C2/5A03 85 E2 STA $E2 [$00:00E2] A:001A X:FB00 Y:2400 C2/5A05 A9 00 00 LDA #$0000 A:001A X:FB00 Y:2400 C2/5A08 85 E4 STA $E4 [$00:00E4] A:0000 X:FB00 Y:2400 C2/5A0A AF 30 A0 C2 LDA $C2A030[$C2:A030] A:0000 X:FB00 Y:2400 C2/5A0E 85 EA STA $EA [$00:00EA] A:E654 X:FB00 Y:2400 C2/5A10 A9 C2 00 LDA #$00C2 A:E654 X:FB00 Y:2400 C2/5A13 85 EC STA $EC [$00:00EC] A:00C2 X:FB00 Y:2400 C2/5A15 20 30 07 JSR $0730 [$C2:0730] A:00C2 X:FB00 Y:2400 ---------------------------------------------------------------- Coordinates for all ally's ABXY battle buttons C2/3461 BF 85 36 C2 ;call function--jumps to coordinate data C2/3685 BF FF ;Mario C2/3687 BE FF ;Toadstool C2/3689 BA FF ;Bowser C2/368B C0 FF ;Geno C2/368D C4 FF ;Mallow C2/368F BF FF ;6th party member C2/346E C0 FF ;Scarecrow ailment ---------------------------------------------------------------- Targeting C2/359A BB TYX A:0005 X:40C0 Y:2100 C2/359B A9 04 00 LDA #$0004 A:0005 X:2100 Y:2100 C2/359E 9F 08 00 40 STA $400008,x[$40:2108] A:0004 X:2100 Y:2100 C2/35A2 A9 80 00 LDA #$0080 A:0004 X:2100 Y:2100 C2/35A5 85 E0 STA $E0 [$00:00E0] A:0080 X:2100 Y:2100 C2/35A7 A9 12 00 LDA #$0012 A:0080 X:2100 Y:2100 C2/35AA 85 E2 STA $E2 [$00:00E2] A:0012 X:2100 Y:2100 C2/35AC AD 2A 07 LDA $072A [$00:072A] A:0012 X:2100 Y:2100 C2/35AF 0A ASL A A:0002 X:2100 Y:2100 C2/35B0 85 E4 STA $E4 [$00:00E4] A:0004 X:2100 Y:2100 C2/35B2 AF 30 A0 C2 LDA $C2A030[$C2:A030] A:0004 X:2100 Y:2100 C2/35B6 85 EA STA $EA [$00:00EA] A:E654 X:2100 Y:2100 C2/35B8 A9 C2 00 LDA #$00C2 A:E654 X:2100 Y:2100 C2/35BB 85 EC STA $EC [$00:00EC] A:00C2 X:2100 Y:2100 C2/35BD 20 02 07 JSR $0702 [$C2:0702] A:00C2 X:2100 Y:2100 C2/35C0 A5 66 LDA $66 [$00:0066] A:0000 X:2180 Y:0024 C2/35C2 9F 0C 00 40 STA $40000C,x[$40:218C] A:2100 X:2180 Y:0024 C2/35C6 AA TAX A:2100 X:2180 Y:0024 C2/35C7 A9 00 00 LDA #$0000 A:2100 X:2100 Y:0024 C2/35CA 9F 6E 00 40 STA $40006E,x[$40:216E] A:0000 X:2100 Y:0024 C2/35CE A9 FF FF LDA #$FFFF A:0000 X:2100 Y:0024 C2/35D1 8D 2C 07 STA $072C [$00:072C] A:FFFF X:2100 Y:0024 C2/35D4 4C 5F 0C JMP $0C5F [$C2:0C5F] A:FFFF X:2100 Y:0024 C2/35D7 BB TYX A:0008 X:0008 Y:2100 $C2/35D8 BF 6E 00 40 LDA $40006E,x[$40:216E] A:0008 X:2100 Y:2100 $C2/35DC D0 03 BNE $03 [$35E1] A:0000 X:2100 Y:2100 $C2/35DE 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0000 X:2100 Y:2100 C2/35E1 A9 05 00 LDA #$0005 A:0001 X:2100 Y:2100 $C2/35E4 9F 08 00 40 STA $400008,x[$40:2108] A:0005 X:2100 Y:2100 $C2/35E8 BF 0E 00 40 LDA $40000E,x[$40:210E] A:0005 X:2100 Y:2100 $C2/35EC AA TAX A:40C0 X:2100 Y:2100 $C2/35ED BF 05 00 40 LDA $400005,x[$40:40C5] A:40C0 X:40C0 Y:2100 $C2/35F1 09 01 00 ORA #$0001 A:0808 X:40C0 Y:2100 $C2/35F4 9F 05 00 40 STA $400005,x[$40:40C5] A:0809 X:40C0 Y:2100 $C2/35F8 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0809 X:40C0 Y:2100 C2/35FC BF 0E 00 40 LDA $40000E,x[$40:210E] A:000A X:2100 Y:2100 $C2/3600 AA TAX A:40C0 X:2100 Y:2100 $C2/3601 BF 01 00 40 LDA $400001,x[$40:40C1] A:40C0 X:40C0 Y:2100 $C2/3605 89 04 00 BIT #$0004 A:0001 X:40C0 Y:2100 $C2/3608 D0 03 BNE $03 [$360D] A:0001 X:40C0 Y:2100 $C2/360A 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0001 X:40C0 Y:2100 C2/360D BB TYX A:0005 X:40C0 Y:2100 $C2/360E AD 2C 07 LDA $072C [$00:072C] A:0005 X:2100 Y:2100 $C2/3611 C9 FF FF CMP #$FFFF A:FFFF X:2100 Y:2100 $C2/3614 D0 13 BNE $13 [$3629] A:FFFF X:2100 Y:2100 $C2/3616 A9 02 00 LDA #$0002 A:FFFF X:2100 Y:2100 $C2/3619 9F 08 00 40 STA $400008,x[$40:2108] A:0002 X:2100 Y:2100 $C2/361D AD 2E 07 LDA $072E [$00:072E] A:0002 X:2100 Y:2100 $C2/3620 8D 14 30 STA $3014 [$00:3014] A:0080 X:2100 Y:2100 $C2/3623 8D 10 30 STA $3010 [$00:3010] A:0080 X:2100 Y:2100 $C2/3626 4C 1F 35 JMP $351F [$C2:351F] A:0080 X:2100 Y:2100 C2/3758 FF 37 00 7E SBC $7E0037,x[$7E:FC37] A:00A8 X:FC00 Y:0002 C2/375C 85 E6 STA $E6 [$00:00E6] A:00A0 X:FC00 Y:0002 C2/375E 64 E7 STZ $E7 [$00:00E7] A:00A0 X:FC00 Y:0002 C2/3760 BF 3C 00 7E LDA $7E003C,x[$7E:FC3C] A:00A0 X:FC00 Y:0002 ;load targeting arrow coordinate C2/3764 38 SEC A:0078 X:FC00 Y:0002 C2/3765 FF 3D 00 7E SBC $7E003D,x[$7E:FC3D] A:0078 X:FC00 Y:0002 ;load targeting arrow coordinate C2/3769 38 SEC A:0078 X:FC00 Y:0002 C2/376A FF 38 00 7E SBC $7E0038,x[$7E:FC38] A:0078 X:FC00 Y:0002 C2/376E 85 E8 STA $E8 [$00:00E8] A:0068 X:FC00 Y:0002 C2/3770 64 E9 STZ $E9 [$00:00E9] A:0068 X:FC00 Y:0002 C2/3772 C2 20 REP #$20 A:0068 X:FC00 Y:0002 C2/3774 64 EA STZ $EA [$00:00EA] A:0068 X:FC00 Y:0002 C2/3776 A9 85 00 LDA #$0085 A:0068 X:FC00 Y:0002 C2/3779 85 E0 STA $E0 [$00:00E0] A:0085 X:FC00 Y:0002 C2/377B 64 E2 STZ $E2 [$00:00E2] A:0085 X:FC00 Y:0002 C2/377D 64 E4 STZ $E4 [$00:00E4] A:0085 X:FC00 Y:0002 C2/377F A9 20 00 LDA #$0020 A:0085 X:FC00 Y:0002 C2/3782 85 EC STA $EC [$00:00EC] A:0020 X:FC00 Y:0002 C2/3784 A9 0C 00 LDA #$000C A:0020 X:FC00 Y:0002 ;Target arrow graphics (tile) C2/3787 85 EE STA $EE [$00:00EE] A:000C X:FC00 Y:0002 C2/3789 20 14 72 JSR $7214 [$C2:7214] A:000C X:FC00 Y:0002 C2/378C 8A TXA A:0000 X:4100 Y:0008 C2/378D A6 66 LDX $66 [$00:0066] A:4100 X:4100 Y:0008 C2/378F 9F 0E 00 40 STA $40000E,x[$40:218E] A:4100 X:2180 Y:0008 C2/3793 A5 E6 LDA $E6 [$00:00E6] A:4100 X:2180 Y:0008 C2/3795 9F 32 00 40 STA $400032,x[$40:21B2] A:00A0 X:2180 Y:0008 C2/3799 A5 E8 LDA $E8 [$00:00E8] A:00A0 X:2180 Y:0008 C2/379B 9F 36 00 40 STA $400036,x[$40:21B6] A:0068 X:2180 Y:0008 C2/379F A9 00 00 LDA #$0000 A:0068 X:2180 Y:0008 C2/37A2 9F 3A 00 40 STA $40003A,x[$40:21BA] A:0000 X:2180 Y:0008 C2/37A6 A9 01 00 LDA #$0001 A:0000 X:2180 Y:0008 C2/37A9 9F 60 00 40 STA $400060,x[$40:21E0] A:0001 X:2180 Y:0008 C2/37AD 9C 84 0B STZ $0B84 [$00:0B84] A:0001 X:2180 Y:0008 C2/37B0 A9 0E 00 LDA #$000E A:0001 X:2180 Y:0008 ;sets "A" button? C2/37B3 8D 80 0B STA $0B80 [$00:0B80] A:000E X:2180 Y:0008 ;sets "A" button? C2/37B6 A9 00 01 LDA #$0100 A:000E X:2180 Y:0008 C2/37B9 20 90 9F JSR $9F90 [$C2:9F90] A:0100 X:2180 Y:0008 C2/37BC 4C 61 3A JMP $3A61 [$C2:3A61] A:0080 X:2180 Y:0008 WEAPONS: Targeting C2/37DC 89 80 00 ;"B" press D0 2B ;jump to $37E1 89 40 C0 D0 31 C2/37E6 AD 18 30 89 00 08 ;"up" press F0 03 4C 35 38 89 00 04 ;"down" press F0 03 4C A9 38 89 00 02 ;"left" press F0 03 4C 1E 39 89 00 01 ;"right" press F0 03 4C 92 39 4C 5F 0C C2/37E1 A9 00 00 8D 2C 07 A9 00 01 80 03 ---------------------------------------------------------------- Targeting C2/3A61 A6 66 LDX $66 [$00:0066] A:0080 X:2180 Y:0008 $C2/3A63 A9 05 00 LDA #$0005 A:0080 X:2180 Y:0008 $C2/3A66 9F 08 00 40 STA $400008,x[$40:2188] A:0005 X:2180 Y:0008 $C2/3A6A AD 80 0B LDA $0B80 [$00:0B80] A:0005 X:2180 Y:0008 $C2/3A6D F0 03 BEQ $03 [$3A72] A:000E X:2180 Y:0008 $C2/3A6F 4C 5F 0C JMP $0C5F [$C2:0C5F] A:000E X:2180 Y:0008 Disables X (item) button in battle C2/3A87 7C 8A 3A 90 3A BB 3A E9 3A Disables B (etc) button in battle C2/3B80 7C 83 3B 89 3B B7 3B F8 3B C2/3B89 AE 50 07 BF 44 00 7E 89 08 00 F0 0B BB A9 02 00 9F 08 00 40 4C 5F 0C ---------------------------------------------------------------- DOC_ANI-CODE: <4F> 20 3C ??? game over? $C2/3C20 A6 66 LDX $66 [$00:0066] A:009E X:009E Y:0000 P:envmxdIzc $C2/3C22 BF 0A 00 40 LDA $40000A,x[$40:248A] A:009E X:2480 Y:0000 P:envmxdIzc $C2/3C26 AA TAX A:FA80 X:2480 Y:0000 P:eNvmxdIzc $C2/3C27 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:0000 P:eNvmxdIzc $C2/3C2B 29 C0 00 AND #$00C0 A:00C0 X:FA80 Y:0000 P:envmxdIzc $C2/3C2E C9 C0 00 CMP #$00C0 A:00C0 X:FA80 Y:0000 P:envmxdIzc $C2/3C31 D0 10 BNE $10 [$3C43] A:00E0 X:FA80 Y:0000 P:envmxdIZC $C2/3C33 A6 66 LDX $66 [$00:0066] A:00E0 X:FA80 Y:0000 P:envmxdIZC $C2/3C35 BF 00 00 40 LDA $400000,x[$40:2480] A:00E0 X:2480 Y:0000 P:envmxdIzC $C2/3C39 29 BF FF AND #$FFBF A:0088 X:2480 Y:0000 P:envmxdIzC $C2/3C3C 9F 00 00 40 STA $400000,x[$40:2480] A:0088 X:2480 Y:0000 P:envmxdIzC $C2/3C40 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0088 X:2480 Y:0000 P:envmxdIzC ---------------------------------------------------------------- DOC_ANI-CODE: *jump to address if target not dead $C2/3C6D A6 66 LDX $66 [$00:0066] A:00A2 X:00A2 Y:0001 P:enVmxdIzc $C2/3C6F BF 0A 00 40 LDA $40000A,x[$40:248A] A:00A2 X:2480 Y:0001 P:enVmxdIzc $C2/3C73 AA TAX A:FA80 X:2480 Y:0001 P:eNVmxdIzc $C2/3C74 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:0001 P:eNVmxdIzc $C2/3C78 89 40 00 BIT #$0040 A:00E0 X:FA80 Y:0001 P:enVmxdIzc $C2/3C7B F0 0B BEQ $0B [$3C88] A:00E0 X:FA80 Y:0001 P:enVmxdIzc $C2/3C7D A5 60 LDA $60 [$00:0060] A:00E0 X:FA80 Y:0001 P:enVmxdIzc $C2/3C7F 18 CLC A:0474 X:FA80 Y:0001 P:enVmxdIzc $C2/3C80 69 03 00 ADC #$0003 A:0474 X:FA80 Y:0001 P:enVmxdIzc $C2/3C83 85 60 STA $60 [$00:0060] A:0477 X:FA80 Y:0001 P:envmxdIzc $C2/3C85 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0477 X:FA80 Y:0001 P:envmxdIzc $C2/3C88 A0 01 00 LDY #$0001 A:0477 X:FA80 Y:0001 P:envmxdIzc $C2/3C8B B7 60 LDA [$60],y[$F5:0478] A:0477 X:FA80 Y:0001 P:envmxdIzc $C2/3C8D 85 60 STA $60 [$00:0060] A:0407 X:FA80 Y:0001 P:envmxdIzc $C2/3C8F 4C 4F 0C JMP $0C4F [$C2:0C4F] A:0407 X:FA80 Y:0001 P:envmxdIzc ---------------------------------------------------------------- Defense timing??? $C2/3CD0 AD 00 07 LDA $0700 [$00:0700] A:00A8 X:00A8 Y:FF0F P:envmxdIzc $C2/3CD3 89 00 04 BIT #$0400 A:E800 X:00A8 Y:FF0F P:eNvmxdIzc $C2/3CD6 D0 03 BNE $03 [$3CDB] A:E800 X:00A8 Y:FF0F P:eNvmxdIZc $C2/3CD8 4C 5F 0C JMP $0C5F [$C2:0C5F] A:E800 X:00A8 Y:FF0F P:eNvmxdIZc After being hit (plays recoil after processor) C2/3CDB A6 66 LDX $66 [$00:0066] A:EC00 X:00A8 Y:0001 P:eNVmxdIzc C2/3CDD BF 00 00 40 LDA $400000,x[$40:2480] A:EC00 X:2480 Y:0001 P:enVmxdIzc C2/3CE1 09 20 00 ORA #$0020 A:0088 X:2480 Y:0001 P:enVmxdIzc C2/3CE4 9F 00 00 40 STA $400000,x[$40:2480] A:00A8 X:2480 Y:0001 P:enVmxdIzc C2/3CE8 E6 60 INC $60 [$00:0060] A:00A8 X:2480 Y:0001 P:enVmxdIzc C2/3CEA 4C 4F 0C JMP $0C4F [$C2:0C4F] A:00A8 X:2480 Y:0001 ---------------------------------------------------------------- Targeting? C2/3E00 ---------------------------------------------------------------- Command "Run Away" C2/3F82 ??? C2/3FE2 BF 40 00 7E Palette C2/3FAE 85 EE STA $EE [$00:00EE] A:6200 X:2080 Y:2080 Menu command (sets when selected, if successful) C2/3BD7 A9 05 00 ;Set A to 05 (ran away) 8D 2A 07 ;Save to next used command ---------------------------------------------------------------- Draw portrait C2/3FC2 AA TAX A:FA80 X:0000 Y:2080 C2/3FC3 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:2080 ;load mortal status C2/3FC7 29 C0 00 AND #$00C0 A:0100 X:FA80 Y:2080 ;isolate C2/3FCA C9 80 00 CMP #$0080 A:0000 X:FA80 Y:2080 ;check C2/3FCD F0 75 BEQ $75 [$4044] A:0000 X:FA80 Y:2080 ;doesn't draw the portrait if fainted or not there ---------------------------------------------------------------- Portraits for Ailments C2/3FE2 BF 40 00 7E 29 FF 00 F0 12 A2 FF FF E8 4A 90 FC Load Portrait for Ailment BF 29 41 C2 ...@ $C2/4129... 05 ;Mute 03 ;Sleep 00 ;Poison 04 ;Fear 06 ;*confuse 07 ;Mushroom 08 ;Scarecrow 02 ;Invincible/Invulnerable/Red Essence 29 FF 00 85 E4 80 12 Faint Portrait C2/3FFD BF 41 00 7E C2/4001 89 80 00 C2/4004 D0 04 C2/4006 64 E4 C2/4008 80 05 C2/400A A9 01 00 C2/400D 85 E4 Coordinates for Battle Portrait? C2/400F A6 CE BF 31 41 C2 ; coords for characters 1-3 Palette C2/4042 85 EE STA $EE [$00:00EE] A:6400 X:0000 Y:0008 C2/4044 A6 CE LDX $CE [$00:00CE] A:0080 X:FB00 Y:0008 P:envmxdIZC C2/4046 E8 INX A:0080 X:0002 Y:0008 P:envmxdIzC C2/4047 E8 INX A:0080 X:0003 Y:0008 P:envmxdIzC C2/4048 E0 05 00 CPX #$0005 A:0080 X:0004 Y:0008 P:envmxdIzC C2/404B 10 03 BPL $03 [$4050] A:0080 X:0004 Y:0008 P:eNvmxdIzc C2/404D 4C BC 3F JMP $3FBC [$C2:3FBC] A:0080 X:0004 Y:0008 P:eNvmxdIzc ---------------------------------------------------------------- ...??? C2/41DB A9 0F 00 (set number of characters to display from Spell Name) ---------------------------------------------------------------- Animation: Recoil C2/43B8 A6 66 LDX $66 [$00:0066] A:00D8 X:00D8 Y:0001 $C2/43BA 9B TXY A:00D8 X:2480 Y:0001 $C2/43BB BF 08 00 40 LDA $400008,x[$40:2488] A:00D8 X:2480 Y:2480 $C2/43BF 0A ASL A A:0000 X:2480 Y:2480 $C2/43C0 AA TAX A:0000 X:2480 Y:2480 $C2/43C1 7C C4 43 JMP ($43C4,x)[$C2:43C8] A:0000 X:0000 Y:2480 $C2/43C8 AD 40 30 LDA $3040 [$00:3040] A:0000 X:0000 Y:2480 $C2/43CB 89 01 00 BIT #$0001 A:08B8 X:0000 Y:2480 $C2/43CE F0 03 BEQ $03 [$43D3] A:08B8 X:0000 Y:2480 C2/43D0 4C 5F 0C JMP $0C5F [$C2:0C5F] A:14C1 X:0000 Y:2480 $C2/43D3 BB TYX A:08B8 X:0000 Y:2480 $C2/43D4 A9 01 00 LDA #$0001 A:08B8 X:2480 Y:2480 C2/43D7 9F 08 00 40 STA $400008,x[$40:2488] A:0001 X:2480 Y:2480 C2/43DB A9 21 00 LDA #$0021 A:0001 X:2480 Y:2480 C2/43DE EB XBA A:0021 X:2480 Y:2480 C2/43DF 09 01 00 ORA #$0001 A:2100 X:2480 Y:2480 C2/43E2 85 E0 STA $E0 [$00:00E0] A:2101 X:2480 Y:2480 C2/43E4 64 EC STZ $EC [$00:00EC] A:2101 X:2480 Y:2480 C2/43E6 64 EE STZ $EE [$00:00EE] A:2101 X:2480 Y:2480 C2/43E8 64 E6 STZ $E6 [$00:00E6] A:2101 X:2480 Y:2480 C2/43EA BF 0A 00 40 LDA $40000A,x[$40:248A] A:2101 X:2480 Y:2480 C2/43EE AA TAX A:FA80 X:2480 Y:2480 C2/43EF A8 TAY A:FA80 X:FA80 Y:2480 C2/43F0 BF 2D 00 7E LDA $7E002D,x[$7E:FAAD] A:FA80 X:FA80 Y:FA80 ;load sprite index (it's saved to the character before battle) C2/43F4 29 FF 00 AND #$00FF A:0002 X:FA80 Y:FA80 C2/43F7 85 E2 STA $E2 [$00:00E2] A:0002 X:FA80 Y:FA80 C2/43F9 BB TYX A:0002 X:FA80 Y:FA80 C2/43FA BF 42 00 7E LDA $7E0042,x[$7E:FAC2] A:0002 X:FA80 Y:FA80 C2/43FE 89 04 00 BIT #$0004 A:0400 X:FA80 Y:FA80 C2/4401 F0 07 BEQ $07 [$440A] A:0400 X:FA80 Y:FA80 Defense C2/440A BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:0400 X:FA80 Y:FA80 ;Load statuses C2/440E 89 04 00 BIT #$0004 A:0000 X:FA80 Y:FA80 ;Check if Defense bit set C2/4411 F0 25 BEQ $25 [$4438] A:0000 X:FA80 Y:FA80 ;Branch if not equal [$4438] C2/4438 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0000 X:FA80 Y:FA80 C2/443C 89 80 00 BIT #$0080 A:0187 X:FA80 Y:FA80 C2/443F F0 0A BEQ $0A [$444B] A:0187 X:FA80 Y:FA80 C2/4441 BF 45 00 7E LDA $7E0045,x[$7E:FAC5] A:0187 X:FA80 Y:FA80 C2/4445 F0 0A BEQ $0A [$4451] A:0001 X:FA80 Y:FA80 C2/4447 30 08 BMI $08 [$4451] A:0001 X:FA80 Y:FA80 C2/4449 80 11 BRA $11 [$445C] A:0001 X:FA80 Y:FA80 C2/445C A9 03 00 LDA #$0003 A:0001 X:FA80 Y:FA80 ;set sequence number C2/445F 85 E4 STA $E4 [$00:00E4] A:0003 X:FA80 Y:FA80 C2/4461 BF 42 00 7E LDA $7E0042,x[$7E:FAC2] A:0003 X:FA80 Y:FA80 C2/4465 29 FB FF AND #$FFFB A:0400 X:FA80 Y:FA80 C2/4468 9F 42 00 7E STA $7E0042,x[$7E:FAC2] A:0400 X:FA80 Y:FA80 C2/446C BF 40 00 7E LDA $7E0040,x[$7E:FAC0] A:0400 X:FA80 Y:FA80 C2/4470 29 FF 00 AND #$00FF A:0020 X:FA80 Y:FA80 C2/4473 F0 2A BEQ $2A [$449F] A:0020 X:FA80 Y:FA80 C2/4475 A2 FF FF LDX #$FFFF A:0020 X:FA80 Y:FA80 C2/4478 E8 INX A:0020 X:FFFF Y:FA80 C2/4479 4A LSR A A:0020 X:0000 Y:FA80 C2/447A 90 FC BCC $FC [$4478] A:0010 X:0000 Y:FA80 C2/447C 8A TXA A:0000 X:0005 Y:FA80 C2/447D 0A ASL A A:0005 X:0005 Y:FA80 C2/447E AA TAX A:000A X:0005 Y:FA80 C2/447F FC 00 45 JSR ($4500,x)[$C2:4519] A:000A X:000A Y:FA80 ; Animation: Recoil with newly inflicted ailment (allies) C2/4482 BB TYX A:001E X:000A Y:FA80 C2/4483 BF 43 00 7E LDA $7E0043,x[$7E:FAC3] A:001E X:FA80 Y:FA80 C2/4487 29 FF 00 AND #$00FF A:8704 X:FA80 Y:FA80 C2/448A C9 04 00 CMP #$0004 A:0004 X:FA80 Y:FA80 C2/448D 30 10 BMI $10 [$449F] A:0004 X:FA80 Y:FA80 C2/448F BF 43 00 7E LDA $7E0043,x[$7E:FAC3] A:0004 X:FA80 Y:FA80 C2/4493 29 00 FF AND #$FF00 A:8704 X:FA80 Y:FA80 C2/4496 09 03 00 ORA #$0003 A:8700 X:FA80 Y:FA80 ;Timer for status ailments C2/4499 9F 43 00 7E STA $7E0043,x[$7E:FAC3] A:8703 X:FA80 Y:FA80 C2/449D 80 00 BRA $00 [$449F] A:8703 X:FA80 Y:FA80 C2/449F A6 66 LDX $66 [$00:0066] A:8703 X:FA80 Y:FA80 C2/44A1 9B TXY A:8703 X:2480 Y:FA80 C2/44A2 BF 0E 00 40 LDA $40000E,x[$40:248E] A:8703 X:2480 Y:2480 C2/44A6 AA TAX A:4040 X:2480 Y:2480 C2/44A7 A5 E6 LDA $E6 [$00:00E6] A:4040 X:4040 Y:2480 C2/44A9 F0 0C BEQ $0C [$44B7] A:0000 X:4040 Y:2480 C2/44B7 BF 13 00 40 LDA $400013,x[$40:4053] A:0000 X:4040 Y:2480 C2/44BB 85 E8 STA $E8 [$00:00E8] A:8046 X:4040 Y:2480 C2/44BD 20 01 73 JSR $7301 [$C2:7301] A:8046 X:4040 Y:2480 Animation: Palette C2/44C0 BF 15 00 40 LDA $400015,x[$40:4055] A:0008 X:4040 Y:0008 C2/44C4 29 00 FF AND #$FF00 A:7C00 X:4040 Y:0008 C2/44C7 05 EE ORA $EE [$00:00EE] A:7C00 X:4040 Y:0008 C2/44C9 9F 15 00 40 STA $400015,x[$40:4055] A:7C1E X:4040 Y:0008 C2/44CD A5 E8 LDA $E8 [$00:00E8] A:7C1E X:4040 Y:0008 C2/44CF 9F 13 00 40 STA $400013,x[$40:4053] A:8046 X:4040 Y:0008 C2/44D3 4C 5F 0C JMP $0C5F [$C2:0C5F] A:8046 X:4040 Y:0008 ---------------------------------------------------------------- C2/44D6 BB TYX A:0002 X:0002 Y:2480 P:enVmxdIzc $C2/44D7 BF 0E 00 40 LDA $40000E,x[$40:248E] A:0002 X:2480 Y:2480 P:enVmxdIzc $C2/44DB AA TAX A:4040 X:2480 Y:2480 P:enVmxdIzc $C2/44DC BF 01 00 40 LDA $400001,x[$40:4041] A:4040 X:4040 Y:2480 P:enVmxdIzc $C2/44E0 89 14 00 BIT #$0014 A:8001 X:4040 Y:2480 P:eNVmxdIzc $C2/44E3 D0 03 BNE $03 [$44E8] A:8001 X:4040 Y:2480 P:eNVmxdIZc $C2/44E5 4C 5F 0C JMP $0C5F [$C2:0C5F] A:8001 X:4040 Y:2480 ---------------------------------------------------------------- Animation: Recoil with newly inflicted ailment (allies) C2/4500 10 45 ;Mute 11 45 ;Sleep 12 45 ;Poison 1A 45 ;Fear 1B 45 ;*Confuse 1C 45 ;Mushroom 3B 45 ;Scarecrow 5A 45 ;Invincible/Invulnerable/Red Essence ==Mute== C2/4510 60 RTS A:0000 X:EDE0 Y:ED60 ==Sleep== C2/4511 60 RTS A:0000 X:EDE0 Y:ED60 ==Poison== C2/4512 A9 3C 00 LDA #$003C A:0000 X:EDE0 Y:ED60 C2/4515 85 EE STA $EE [$00:00EE] A:0000 X:EDE0 Y:ED60 C2/4517 64 E6 STZ $E6 [$00:00E6] A:0000 X:EDE0 Y:ED60 C2/4519 60 RTS A:0000 X:EDE0 Y:ED60 ==Fear== C2/451A 60 RTS A:0000 X:EDE0 Y:ED60 ==Confuse== C2/451B 60 RTS A:0000 X:EDE0 Y:ED60 ==Mushroom== C2/451C A9 26 00 LDA #$0026 A:0000 X:EDE0 Y:ED60 ;set sprite number C2/451F 85 E2 STA $E2 [$00:00E2] A:0000 X:EDE0 Y:ED60 C2/4521 BB TYX A:0000 X:EDE0 Y:ED60 C2/4522 BF 43 00 7E LDA $7E0043,x[$7E:EE23] A:0000 X:EDE0 Y:ED60 ;load turn timer C2/4526 29 FF 00 AND #$00FF A:0000 X:EDE0 Y:ED60 ;isolate C2/4529 C9 04 00 CMP #$0004 A:0000 X:EDE0 Y:ED60 ;compare to 4 C2/452C D0 0C BNE $0C [$453A] A:0000 X:EDE0 Y:ED60 C2/452E A9 10 00 LDA #$0010 A:0000 X:EDE0 Y:ED60 C2/4531 14 E1 TRB $E1 [$00:00E1] A:0000 X:EDE0 Y:ED60 C2/4533 A9 06 00 LDA #$0006 A:0000 X:EDE0 Y:ED60 ;set recoil animation sequence C2/4536 85 E4 STA $E4 [$00:00E4] A:0000 X:EDE0 Y:ED60 C2/4538 64 E6 STZ $E6 [$00:00E6] A:0000 X:EDE0 Y:ED60 C2/453A 60 RTS A:0000 X:EDE0 Y:ED60 ==Scarecrow== C2/453B A9 27 00 LDA #$0027 A:0000 X:EDE0 Y:ED60 ;set sprite number C2/453E 85 E2 STA $E2 [$00:00E2] A:0000 X:EDE0 Y:ED60 C2/4540 BB TYX A:0000 X:EDE0 Y:ED60 C2/4541 BF 43 00 7E LDA $7E0043,x[$7E:EE23] A:0000 X:EDE0 Y:ED60 ;load turn timer C2/4545 29 FF 00 AND #$00FF A:0000 X:EDE0 Y:ED60 ;isolate C2/4548 C9 04 00 CMP #$0004 A:0000 X:EDE0 Y:ED60 ;compare to 4 C2/454B D0 0C BNE $0C [$4559] A:0000 X:EDE0 Y:ED60 C2/454D A9 10 00 LDA #$0010 A:0000 X:EDE0 Y:ED60 C2/4550 14 E1 TRB $E1 [$00:00E1] A:0000 X:EDE0 Y:ED60 C2/4552 A9 06 00 LDA #$0006 A:0000 X:EDE0 Y:ED60 C2/4555 85 E4 STA $E4 [$00:00E4] A:0000 X:EDE0 Y:ED60 C2/4557 64 E6 STZ $E6 [$00:00E6] A:0000 X:EDE0 Y:ED60 C2/4559 60 RTS A:0000 X:EDE0 Y:ED60 ==Invincible/Invulnerable/Red Essence== C2/455A 64 E4 STZ $E4 [$00:00E4] A:0000 X:EDE0 Y:ED60 ;resets to 0 (plays animation if defending) C2/455C 60 RTS A:0000 X:EDE0 Y:ED60 ---------------------------------------------------------------- Jump from C2/0C5C (with A = 00DA) Animation: Recoil C2/4562 A6 66 LDX $66 [$00:0066] A:00DA X:00DA Y:0020 C2/4564 9B TXY A:00DA X:2480 Y:0020 C2/4565 BF 0A 00 40 LDA $40000A,x[$40:248A] A:00DA X:2480 Y:2480 C2/4569 AA TAX A:FA80 X:2480 Y:2480 C2/456A BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:FA80 X:FA80 Y:2480 C2/456E 29 FF 00 AND #$00FF A:0000 X:FA80 Y:2480 C2/4571 AA TAX A:0000 X:FA80 Y:2480 C2/4572 BF 7F 46 C2 LDA $C2467F,x[$C2:467F] A:0000 X:0000 Y:2480 C2/4576 29 FF 00 AND #$00FF A:0C06 X:0000 Y:2480 C2/4579 85 E0 STA $E0 [$00:00E0] A:0006 X:0000 Y:2480 C2/457B BB TYX A:0006 X:0000 Y:2480 C2/457C BF 0E 00 40 LDA $40000E,x[$40:248E] A:0006 X:2480 Y:2480 C2/4580 AA TAX A:4040 X:2480 Y:2480 C2/4581 BF 05 00 40 LDA $400005,x[$40:4045] A:4040 X:4040 Y:2480 C2/4585 29 FF 00 AND #$00FF A:0505 X:4040 Y:2480 C2/4588 85 E4 STA $E4 [$00:00E4] A:0005 X:4040 Y:2480 Palette C2/458A BF 15 00 40 LDA $400015,x[$40:4055] A:0005 X:4040 Y:2480 C2/458E 29 FF 00 AND #$00FF A:7C00 X:4040 Y:2480 C2/4591 85 EE STA $EE [$00:00EE] A:0000 X:4040 Y:2480 C2/4593 BF 03 00 40 LDA $400003,x[$40:4043] A:0000 X:4040 Y:2480 C2/4597 C5 E0 CMP $E0 [$00:00E0] A:0002 X:4040 Y:2480 C2/4599 D0 03 BNE $03 [$459E] A:0002 X:4040 Y:2480 C2/459E BB TYX A:0002 X:4040 Y:2480 C2/459F BF 0A 00 40 LDA $40000A,x[$40:248A] A:0002 X:2480 Y:2480 C2/45A3 AA TAX A:FA80 X:2480 Y:2480 C2/45A4 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:FA80 X:FA80 Y:2480 C2/45A8 89 80 00 BIT #$0080 A:0087 X:FA80 Y:2480 C2/45AB F0 39 BEQ $39 [$45E6] A:0087 X:FA80 Y:2480 C2/45AD BF 45 00 7E LDA $7E0045,x[$7E:FAC5] A:0087 X:FA80 Y:2480 C2/45B1 10 33 BPL $33 [$45E6] A:0000 X:FA80 Y:2480 C2/45B3 BF 40 00 7E LDA $7E0040,x[$7E:FAC0] A:8007 X:FA80 Y:2480 C2/45B7 29 FF 00 AND #$00FF A:0310 X:FA80 Y:2480 C2/45BA D0 2A BNE $2A [$45E6] A:0010 X:FA80 Y:2480 Animation: Defense/Defending C2/45E6 BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:0000 X:FA80 Y:2480 C2/45EA 89 04 00 BIT #$0004 A:0000 X:FA80 Y:2480 C2/45ED F0 0C BEQ $0C [$45FB] A:0000 X:FA80 Y:2480 C2/45EF A9 10 00 LDA #$0010 A:0007 X:FB00 Y:2500 C2/45F2 85 E0 STA $E0 [$00:00E0] A:0010 X:FB00 Y:2500 C2/45F4 A9 05 00 LDA #$0005 A:0010 X:FB00 Y:2500 C2/45F7 85 E4 STA $E4 [$00:00E4] A:0005 X:FB00 Y:2500 C2/45F9 80 5B BRA $5B [$4656] A:0005 X:FB00 Y:2500 C2/45FB A9 10 00 LDA #$0010 A:0000 X:FA80 Y:2480 C2/45FE 85 E0 STA $E0 [$00:00E0] A:0010 X:FA80 Y:2480 C2/4600 A9 00 FF LDA #$FF00 A:0010 X:FA80 Y:2480 C2/4603 85 E4 STA $E4 [$00:00E4] A:FF00 X:FA80 Y:2480 C2/4605 64 EE STZ $EE [$00:00EE] A:FF00 X:FA80 Y:2480 Animation: Idle character ailment animations C2/4607 BF 43 00 7E LDA $7E0043,x[$7E:FAC3] A:FF00 X:FA80 Y:2480 C2/460B 29 FF 00 AND #$00FF A:8703 X:FA80 Y:2480 C2/460E C9 04 00 CMP #$0004 A:0003 X:FA80 Y:2480 C2/4611 F0 43 BEQ $43 [$4656] A:0003 X:FA80 Y:2480 C2/4613 BF 40 00 7E LDA $7E0040,x[$7E:FAC0] A:0003 X:FA80 Y:2480 C2/4617 29 FF 00 AND #$00FF A:0020 X:FA80 Y:2480 C2/461A F0 3A BEQ $3A [$4656] A:0020 X:FA80 Y:2480 Ailment: Sleep C2/461C 89 02 00 BIT #$0002 A:0002 X:FA80 Y:2480 C2/461F F0 0C BEQ $0C [$462D] A:0002 X:FA80 Y:2480 C2/4621 A9 08 00 LDA #$0008 A:0002 X:FA80 Y:2480 C2/4624 85 E0 STA $E0 [$00:00E0] A:0008 X:FA80 Y:2480 C2/4626 A9 06 00 LDA #$0006 A:0008 X:FA80 Y:2480 C2/4629 85 E4 STA $E4 [$00:00E4] A:0006 X:FA80 Y:2480 C2/462B 80 29 BRA $29 [$4656] A:0006 X:FA80 Y:2480 Ailment: Fear C2/462D 89 08 00 BIT #$0008 A:0020 X:FA80 Y:2480 C2/4630 F0 0C BEQ $0C [$463E] A:0020 X:FA80 Y:2480 C2/4632 A9 08 00 LDA #$0008 A:0008 X:FA80 Y:2480 C2/4635 85 E0 STA $E0 [$00:00E0] A:0008 X:FA80 Y:2480 C2/4637 A9 0B 00 LDA #$000B A:0008 X:FA80 Y:2480 C2/463A 85 E4 STA $E4 [$00:00E4] A:000B X:FA80 Y:2480 C2/463C 80 18 BRA $18 [$4656] A:000B X:FA80 Y:2480 Ailment: Mute C2/463E 89 01 00 BIT #$0001 A:0001 X:FA80 Y:2480 C2/4641 F0 07 BEQ $07 [$464A] A:0001 X:FA80 Y:2480 C2/4643 A9 0D 00 LDA #$000D A:0001 X:FA80 Y:2480 C2/4646 85 E4 STA $E4 [$00:00E4] A:000D X:FA80 Y:2480 C2/4648 80 0C BRA $0C [$4656] A:000D X:FA80 Y:2480 Ailment: Poison C2/464A 89 04 00 BIT #$0004 A:0004 X:FA80 Y:2480 C2/464D F0 07 BEQ $07 [$4656] A:0004 X:FA80 Y:2480 C2/464F A9 3C 00 LDA #$003C A:0004 X:FA80 Y:2480 C2/4652 85 EE STA $EE [$00:00EE] A:003C X:FA80 Y:2480 C2/4654 80 00 BRA $00 [$4656] A:003C X:FA80 Y:2480 C2/4656 BB TYX A:0020 X:FA80 Y:2480 C2/4657 BF 0E 00 40 LDA $40000E,x[$40:248E] A:0020 X:2480 Y:2480 C2/465B AA TAX A:4040 X:2480 Y:2480 C2/465C E2 20 SEP #$20 A:4040 X:4040 Y:2480 C2/465E BF 01 00 40 LDA $400001,x[$40:4041] A:4040 X:4040 Y:2480 C2/4662 29 E3 AND #$E3 A:4010 X:4040 Y:2480 C2/4664 09 20 ORA #$20 A:4000 X:4040 Y:2480 C2/4666 05 E0 ORA $E0 [$00:00E0] A:4020 X:4040 Y:2480 C2/4668 9F 01 00 40 STA $400001,x[$40:4041] A:4030 X:4040 Y:2480 C2/466C A5 EE LDA $EE [$00:00EE] A:4030 X:4040 Y:2480 C2/466E 9F 15 00 40 STA $400015,x[$40:4055] A:4000 X:4040 Y:2480 C2/4672 C2 20 REP #$20 A:4000 X:4040 Y:2480 C2/4674 A5 E4 LDA $E4 [$00:00E4] A:4000 X:4040 Y:2480 C2/4676 9F 05 00 40 STA $400005,x[$40:4045] A:FF00 X:4040 Y:2480 C2/467A E6 60 INC $60 [$00:0060] A:FF00 X:4040 Y:2480 C2/467C 4C 5F 0C JMP $0C5F [$C2:0C5F] A:FF00 X:4040 Y:2480 ---------------------------------------------------------------- C2/46A1 ;start? numeral display C2/46BB BF 44 00 7E LDA $7E0044,x[$7E:FC44] A:0000 X:FC00 Y:2400 P:eNvmxdIzc $C2/46BF 89 80 00 BIT #$0080 A:0180 X:FC00 Y:2400 P:envmxdIzc $C2/46C2 F0 0A BEQ $0A [$46CE] A:0180 X:FC00 Y:2400 P:envmxdIzc $C2/46C4 BF 45 00 7E LDA $7E0045,x[$7E:FC45] A:0180 X:FC00 Y:2400 P:envmxdIzc $C2/46C8 F0 43 BEQ $43 [$470D] A:0001 X:FC00 Y:2400 P:envmxdIzc C2/46CA 10 08 BPL $08 [$46D4] A:0001 X:FC00 Y:2400 P:envmxdIzc $C2/46D4 BB TYX A:0001 X:FC00 Y:2400 P:envmxdIzc $C2/46D5 BF 0E 00 40 LDA $40000E,x[$40:240E] A:0001 X:2400 Y:2400 P:envmxdIzc $C2/46D9 AA TAX A:4000 X:2400 Y:2400 P:envmxdIzc $C2/46DA E2 20 SEP #$20 A:4000 X:4000 Y:2400 P:envmxdIzc $C2/46DC BF 01 00 40 LDA $400001,x[$40:4001] A:4000 X:4000 Y:2400 P:envMxdIzc $C2/46E0 29 E3 AND #$E3 A:4008 X:4000 Y:2400 P:envMxdIzc $C2/46E2 9F 01 00 40 STA $400001,x[$40:4001] A:4000 X:4000 Y:2400 P:envMxdIZc $C2/46E6 A9 02 LDA #$02 A:4000 X:4000 Y:2400 P:envMxdIZc $C2/46E8 9F 05 00 40 STA $400005,x[$40:4005] A:4002 X:4000 Y:2400 P:envMxdIzc $C2/46EC BF 2D 00 40 LDA $40002D,x[$40:402D] A:4002 X:4000 Y:2400 P:envMxdIzc $C2/46F0 29 BF AND #$BF A:402A X:4000 Y:2400 P:envMxdIzc $C2/46F2 9F 2D 00 40 STA $40002D,x[$40:402D] A:402A X:4000 Y:2400 P:envMxdIzc ---------------------------------------------------------------- DOC_ANI-CODE: <7A> Display battle dialogue ... C2/4B90 AF 14 00 F9 ;load dialogue pointers ---------------------------------------------------------------- DOC_ANI-CODE: <7D> ??? game over stuff C2/4D5B BB TYX A:000A X:000A Y:2000 C2/4D5C A9 06 00 LDA #$0006 A:000A X:2000 Y:2000 C2/4D5F 9F 60 00 40 STA $400060,x[$40:2060] A:0006 X:2000 Y:2000 C2/4D63 A9 68 00 LDA #$0068 A:0006 X:2000 Y:2000 C2/4D66 9F 62 00 40 STA $400062,x[$40:2062] A:0068 X:2000 Y:2000 C2/4D6A A9 1E 00 LDA #$001E A:0068 X:2000 Y:2000 C2/4D6D 8D 00 1D STA $1D00 [$00:1D00] A:001E X:2000 Y:2000 C2/4D70 9C 02 1D STZ $1D02 [$00:1D02] A:001E X:2000 Y:2000 C2/4D73 22 00 00 C4 JSL $C40000[$C4:0000] A:001E X:2000 Y:2000 ;fades music C2/4D77 A9 0E 00 LDA #$000E A:001E X:2000 Y:2000 ;set dialogue index ("Game Over...!") C2/4D7A 85 E0 STA $E0 [$00:00E0] A:000E X:2000 Y:2000 C2/4D7C 4C DD 4C JMP $4CDD [$C2:4CDD] A:000E X:2000 Y:2000 ---------------------------------------------------------------- Monster: Sleep/Idle animation C2/0C5C 7C 3D 0D JMP ($0D3D,x)[$C2:5172] A:00FE X:00FE Y:0020 C2/5172 A6 66 LDX $66 [$00:0066] A:00FE X:00FE Y:0020 C2/5174 64 E2 STZ $E2 [$00:00E2] A:00FE X:2400 Y:0020 C2/5176 64 E4 STZ $E4 [$00:00E4] A:00FE X:2400 Y:0020 C2/5178 9B TXY A:00FE X:2400 Y:0020 C2/5179 BF 0A 00 40 LDA $40000A,x[$40:240A] A:00FE X:2400 Y:2400 C2/517D AA TAX A:FC00 X:2400 Y:2400 C2/517E BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:FC00 X:FC00 Y:2400 ;Load ailments from monster C2/5182 89 02 00 BIT #$0002 A:8000 X:FC00 Y:2400 ;check for Sleep C2/5185 F0 05 BEQ $05 [$518C] A:8000 X:FC00 Y:2400 C2/5187 A9 10 00 LDA #$0010 A:8000 X:FC00 Y:2400 C2/518A 80 03 BRA $03 [$518F] A:0010 X:FC00 Y:2400 C2/518C A9 08 00 LDA #$0008 A:0010 X:FC00 Y:2400 C2/518F 85 E2 STA $E2 [$00:00E2] A:0008 X:FC00 Y:2400 C2/5191 BB TYX A:0008 X:FC00 Y:2400 C2/5192 BF 0E 00 40 LDA $40000E,x[$40:240E] A:0008 X:2400 Y:2400 C2/5196 AA TAX A:4000 X:2400 Y:2400 C2/5196 AA TAX A:4000 X:2400 Y:2400 C2/5197 E2 20 SEP #$20 A:4000 X:4000 Y:2400 C2/5199 BF 01 00 40 LDA $400001,x[$40:4001] A:4000 X:4000 Y:2400 C2/519D 29 E3 AND #$E3 A:4004 X:4000 Y:2400 C2/519F 05 E2 ORA $E2 [$00:00E2] A:4000 X:4000 Y:2400 C2/51A1 9F 01 00 40 STA $400001,x[$40:4001] A:4008 X:4000 Y:2400 C2/51A5 A5 E4 LDA $E4 [$00:00E4] A:4008 X:4000 Y:2400 C2/51A7 9F 05 00 40 STA $400005,x[$40:4005] A:4000 X:4000 Y:2400 C2/51AB BF 2D 00 40 LDA $40002D,x[$40:402D] A:4000 X:4000 Y:2400 C2/51AF 29 BF AND #$BF A:402A X:4000 Y:2400 C2/51B1 9F 2D 00 40 STA $40002D,x[$40:402D] A:402A X:4000 Y:2400 C2/51B5 C2 20 REP #$20 A:402A X:4000 Y:2400 C2/51B7 E6 60 INC $60 [$00:0060] A:402A X:4000 Y:2400 C2/51B9 4C 5F 0C JMP $0C5F [$C2:0C5F] A:402A X:4000 Y:2400 ---------------------------------------------------------------- A7> ??? weapon timing? C2/5E4D A6 66 9B BF 08 00 40 C2/5E54 0A ASL A A:0000 X:2480 Y:2480 C2/5E55 AA TAX A:0000 X:2480 Y:2480 C2/5E56 7C 59 5E JMP ($5E59,x)[$C2:5E5D] A:0000 X:0000 Y:2480 5D 5E 68 5E C2/5E5D BB TYX A:0000 X:0000 Y:2480 C2/5E5E A9 01 00 LDA #$0001 A:0000 X:2480 Y:2480 C2/5E61 9F 08 00 40 STA $400008,x[$40:2488] A:0001 X:2480 Y:2480 C2/5E65 9C 4C 30 STZ $304C [$00:304C] A:0001 X:2480 Y:2480 C2/5E68 BB TYX A:0001 X:2480 Y:2480 C2/5E69 BF 0E 00 40 LDA $40000E,x[$40:248E] A:0001 X:2480 Y:2480 C2/5E6D AA TAX A:4040 X:2480 Y:2480 C2/5E6E BF 01 00 40 LDA $400001,x[$40:4041] A:4040 X:4040 Y:2480 C2/5E72 89 04 00 BIT #$0004 A:0000 X:4040 Y:2480 C2/5E75 D0 03 BNE $03 [$5E7A] A:0000 X:4040 Y:2480 C2/5E77 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0000 X:4040 Y:2480 weapon timing C2/5E7A BB TYX A:0004 X:4040 Y:2480 C2/5E7B A9 00 00 LDA #$0000 A:0004 X:2480 Y:2480 C2/5E7E 9F 08 00 40 STA $400008,x[$40:2488] A:0000 X:2480 Y:2480 C2/5E82 AE 30 07 LDX $0730 [$00:0730] A:0000 X:2480 Y:2480 C2/5E85 BF 44 00 7E LDA $7E0044,x[$7E:FC44] A:0000 X:FC00 Y:2480 C2/5E89 89 80 00 BIT #$0080 A:0180 X:FC00 Y:2480 C2/5E8C D0 10 BNE $10 [$5E9E] A:0180 X:FC00 Y:2480 C2/5E9E A2 00 00 LDX #$0000 A:0180 X:FC00 Y:2480 C2/5EA1 22 18 A0 C2 JSL $C2A018[$C2:A018] A:0180 X:0000 Y:2480 ;load timing for weapons/defense/spells C2/5EA5 A5 B0 LDA $B0 [$00:00B0] A:000B X:FC00 Y:2480 C2/5EA7 30 0A BMI $0A [$5EB3] A:0000 X:FC00 Y:2480 C2/5EA9 A0 01 00 LDY #$0001 A:0000 X:FC00 Y:2480 C2/5EAC B7 60 LDA [$60],y[$F5:895B] A:0000 X:FC00 Y:0001 C2/5EAE 85 60 STA $60 [$00:0060] A:89BF X:FC00 Y:0001 C2/5EB0 4C 5F 0C JMP $0C5F [$C2:0C5F] A:89BF X:FC00 Y:0001 Timing??? C2/6624 A2 02 00 LDX #$0002 A:0194 X:0194 Y:2480 C2/6627 22 18 A0 C2 JSL $C2A018[$C2:A018] A:0194 X:0002 Y:2480 ;load timing for weapons/defense/spells C2/662B AE 30 07 LDX $0730 [$00:0730] A:0000 X:FA80 Y:FF0F C2/662E BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0000 X:FA80 Y:FF0F C2/6632 89 80 00 BIT #$0080 A:0080 X:FA80 Y:FF0F C2/6635 D0 1E BNE $1E [$6655] A:0080 X:FA80 Y:FF0F C2/6655 E6 60 INC $60 [$00:0060] A:0080 X:FA80 Y:FF0F C2/6657 4C 5F 0C JMP $0C5F [$C2:0C5F] A:0080 X:FA80 Y:FF0F ---------------------------------------------------------------- Resets status of ally? C2/6D96 BF 4F 00 7E ;Loads status for equips 29 FF 00 ; 9F 41 00 7E ;Saves buffs for battle status A9 01 00 ; 9F 11 00 7E ;Set HP to 1 ---------------------------------------------------------------- GFX: Loads index for target arrow tiles and numerals graphics ...from C2/8DD2 JSR... C2/6F40 E2 20 A2 00 60 ;load at C0 in VRAM (because everything loads starting at $60 I guess) ... A9 18 8D 01 43 C2/6F52 A2 00 F8 ;loads index @C3/F800 8E 02 43 A9 C3 ;loads at Bank C3 8D 04 43 A2 00 04 8E 05 43 A9 01 8D 0B 42 C2 20 60 ;return ---------------------------------------------------------------- Ally: Load Animation Data? C2/7301 86 D0 STX $D0 [$00:00D0] A:4040 X:4040 Y:2480 C2/7303 A5 E0 LDA $E0 [$00:00E0] A:4040 X:4040 Y:2480 C2/7305 29 3F FD AND #$FD3F A:3101 X:4040 Y:2480 C2/7308 85 D8 STA $D8 [$00:00D8] A:3101 X:4040 Y:2480 C2/730A BF 00 00 40 LDA $400000,x[$40:4040] A:3101 X:4040 Y:2480 C2/730E 29 C0 02 AND #$02C0 A:10C1 X:4040 Y:2480 C2/7311 05 D8 ORA $D8 [$00:00D8] A:00C0 X:4040 Y:2480 C2/7313 9F 00 00 40 STA $400000,x[$40:4040] A:31C1 X:4040 Y:2480 C2/7317 A9 00 00 LDA #$0000 A:31C1 X:4040 Y:2480 C2/731A 9F 02 00 40 STA $400002,x[$40:4042] A:0000 X:4040 Y:2480 C2/731E A5 E2 LDA $E2 [$00:00E2] A:0000 X:4040 Y:2480 C2/7320 9F 03 00 40 STA $400003,x[$40:4043] A:0002 X:4040 Y:2480 C2/7324 0A ASL A A:0002 X:4040 Y:2480 C2/7325 0A ASL A A:0004 X:4040 Y:2480 C2/7326 AA TAX A:0008 X:4040 Y:2480 C2/7327 BF 02 00 E5 LDA $E50002,x[$E5:000A] A:0008 X:0008 Y:2480 C2/732B 85 DA STA $DA [$00:00DA] A:010C X:0008 Y:2480 C2/732D BF 00 00 E5 LDA $E50000,x[$E5:0008] A:010C X:0008 Y:2480 C2/7331 85 D8 STA $D8 [$00:00D8] A:0130 X:0008 Y:2480 C2/7333 29 FF 01 AND #$01FF A:0130 X:0008 Y:2480 C2/7336 0A ASL A A:0130 X:0008 Y:2480 C2/7337 0A ASL A A:0260 X:0008 Y:2480 C2/7338 AA TAX A:04C0 X:0008 Y:2480 C2/7339 BF 00 18 E5 LDA $E51800,x[$E5:1CC0] A:04C0 X:04C0 Y:2480 C2/733D 85 DC STA $DC [$00:00DC] A:04AA X:04C0 Y:2480 C2/733F BF 02 18 E5 LDA $E51802,x[$E5:1CC2] A:04AA X:04C0 Y:2480 C2/7343 A6 D0 LDX $D0 [$00:00D0] A:8046 X:04C0 Y:2480 C2/7345 9F 13 00 40 STA $400013,x[$40:4053] A:8046 X:4040 Y:2480 C2/7349 A5 DC LDA $DC [$00:00DC] A:8046 X:4040 Y:2480 C2/734B 29 F0 FF AND #$FFF0 A:04AA X:4040 Y:2480 C2/734E 9F 10 00 40 STA $400010,x[$40:4050] A:04A0 X:4040 Y:2480 C2/7352 A5 DA LDA $DA [$00:00DA] A:04A0 X:4040 Y:2480 C2/7354 0A ASL A A:010C X:4040 Y:2480 C2/7355 18 CLC A:0218 X:4040 Y:2480 C2/7356 65 DA ADC $DA [$00:00DA] A:0218 X:4040 Y:2480 C2/7358 AA TAX A:0324 X:4040 Y:2480 C2/7359 BF 00 20 E5 LDA $E52000,x[$E5:2324] A:0324 X:0324 Y:2480 C2/735D 9B TXY A:2E7C X:0324 Y:2480 C2/735E A6 D0 LDX $D0 [$00:00D0] A:2E7C X:0324 Y:0324 C2/7360 9F 16 00 40 STA $400016,x[$40:4056] A:2E7C X:4040 Y:0324 C2/7364 BB TYX A:2E7C X:4040 Y:0324 C2/7365 BF 02 20 E5 LDA $E52002,x[$E5:2326] A:2E7C X:0324 Y:0324 C2/7369 A6 D0 LDX $D0 [$00:00D0] A:62F6 X:0324 Y:0324 C2/736B 9F 18 00 40 STA $400018,x[$40:4058] A:62F6 X:4040 Y:0324 C2/736F A5 E4 LDA $E4 [$00:00E4] A:62F6 X:4040 Y:0324 C2/7371 09 00 FF ORA #$FF00 A:0000 X:4040 Y:0324 C2/7374 9F 05 00 40 STA $400005,x[$40:4045] A:FF00 X:4040 Y:0324 C2/7378 A9 FF FF LDA #$FFFF A:FF00 X:4040 Y:0324 C2/737B 9F 0C 00 40 STA $40000C,x[$40:404C] A:FFFF X:4040 Y:0324 C2/737F A5 D8 LDA $D8 [$00:00D8] A:FFFF X:4040 Y:0324 C2/7381 EB XBA A:0130 X:4040 Y:0324 C2/7382 29 0E 00 AND #$000E A:3001 X:4040 Y:0324 C2/7385 AA TAX A:0000 X:4040 Y:0324 C2/7386 BF F0 73 C2 LDA $C273F0,x[$C2:73F0] A:0000 X:0000 Y:0324 C2/738A A6 D0 LDX $D0 [$00:00D0] A:0000 X:0000 Y:0324 C2/738C E2 20 SEP #$20 A:0000 X:4040 Y:0324 C2/738E 9F 15 00 40 STA $400015,x[$40:4055] A:0000 X:4040 Y:0324 C2/7392 BF 2D 00 40 LDA $40002D,x[$40:406D] A:0000 X:4040 Y:0324 C2/7396 29 BF AND #$BF A:0022 X:4040 Y:0324 C2/7398 05 EC ORA $EC [$00:00EC] A:0022 X:4040 Y:0324 C2/739A 9F 2D 00 40 STA $40002D,x[$40:406D] A:0022 X:4040 Y:0324 C2/739E A5 DC LDA $DC [$00:00DC] A:0022 X:4040 Y:0324 C2/73A0 29 0F AND #$0F A:00AA X:4040 Y:0324 C2/73A2 18 CLC A:000A X:4040 Y:0324 C2/73A3 69 E8 ADC #$E8 A:000A X:4040 Y:0324 C2/73A5 9F 12 00 40 STA $400012,x[$40:4052] A:00F2 X:4040 Y:0324 C2/73A9 C2 20 REP #$20 A:00F2 X:4040 Y:0324 C2/73AB BF 16 00 40 LDA $400016,x[$40:4056] A:00F2 X:4040 Y:0324 C2/73AF 85 DA STA $DA [$00:00DA] A:2E7C X:4040 Y:0324 C2/73B1 BF 18 00 40 LDA $400018,x[$40:4058] A:2E7C X:4040 Y:0324 C2/73B5 85 DC STA $DC [$00:00DC] A:62F6 X:4040 Y:0324 C2/73B7 A0 08 00 LDY #$0008 A:62F6 X:4040 Y:0324 C2/73BA B7 DA LDA [$DA],y[$F6:2E84] A:62F6 X:4040 Y:0008 C2/73BC 9F 19 00 40 STA $400019,x[$40:4059] A:0008 X:4040 Y:0008 C2/73C0 60 RTS A:0008 X:4040 Y:0008 ---------------------------------------------------------------- Loads before battle C2/70F2 A2 00 00 LDX #$0000 A:7000 X:FC00 Y:0000 C2/70F5 9B TXY A:7000 X:0000 Y:0000 C2/70F6 BF 3D 01 C2 LDA $C2013D,x[$C2:013D] A:7000 X:0000 Y:0000 C2/70FA F0 0C BEQ $0C [$7108] A:4000 X:0000 Y:0000 C2/70FC AA TAX A:4000 X:0000 Y:0000 C2/70FD BF 00 00 40 LDA $400000,x[$40:4000] A:4000 X:4000 Y:0000 C2/7101 F0 06 BEQ $06 [$7109] A:0000 X:4000 Y:0000 C2/7109 86 D0 STX $D0 [$00:00D0] A:0000 X:4000 Y:0000 C2/710B A5 E0 LDA $E0 [$00:00E0] A:0000 X:4000 Y:0000 C2/710D 9F 00 00 40 STA $400000,x[$40:4000] A:2AC1 X:4000 Y:0000 C2/7111 A9 20 00 LDA #$0020 A:2AC1 X:4000 Y:0000 C2/7114 9F 02 00 40 STA $400002,x[$40:4002] A:0020 X:4000 Y:0000 C2/7118 A5 E2 LDA $E2 [$00:00E2] A:0020 X:4000 Y:0000 C2/711A 9F 03 00 40 STA $400003,x[$40:4003] A:01FC X:4000 Y:0000 C2/711E 0A ASL A A:01FC X:4000 Y:0000 C2/711F 0A ASL A A:03F8 X:4000 Y:0000 C2/7120 AA TAX A:07F0 X:4000 Y:0000 C2/7121 BF 02 00 E5 LDA $E50002,x[$E5:07F2] A:07F0 X:07F0 Y:0000 C2/7125 85 DA STA $DA [$00:00DA] A:005C X:07F0 Y:0000 C2/7127 BF 00 00 E5 LDA $E50000,x[$E5:07F0] A:005C X:07F0 Y:0000 C2/712B 85 D8 STA $D8 [$00:00D8] A:0108 X:07F0 Y:0000 C2/712D 29 FF 01 AND #$01FF A:0108 X:07F0 Y:0000 C2/7130 0A ASL A A:0108 X:07F0 Y:0000 C2/7131 0A ASL A A:0210 X:07F0 Y:0000 C2/7132 AA TAX A:0420 X:07F0 Y:0000 C2/7133 BF 00 18 E5 LDA $E51800,x[$E5:1C20] A:0420 X:0420 Y:0000 C2/7137 85 DC STA $DC [$00:00DC] A:9727 X:0420 Y:0000 C2/7139 BF 02 18 E5 LDA $E51802,x[$E5:1C22] A:9727 X:0420 Y:0000 C2/713D A6 D0 LDX $D0 [$00:00D0] A:759C X:0420 Y:0000 C2/713F 9F 13 00 40 STA $400013,x[$40:4013] A:759C X:4000 Y:0000 C2/7143 A5 DC LDA $DC [$00:00DC] A:759C X:4000 Y:0000 C2/7145 29 F0 FF AND #$FFF0 A:9727 X:4000 Y:0000 C2/7148 9F 10 00 40 STA $400010,x[$40:4010] A:9720 X:4000 Y:0000 C2/714C A5 DA LDA $DA [$00:00DA] A:9720 X:4000 Y:0000 C2/714E 0A ASL A A:005C X:4000 Y:0000 C2/714F 18 CLC A:00B8 X:4000 Y:0000 C2/7150 65 DA ADC $DA [$00:00DA] A:00B8 X:4000 Y:0000 C2/7152 AA TAX A:0114 X:4000 Y:0000 C2/7153 BF 00 20 E5 LDA $E52000,x[$E5:2114] A:0114 X:0114 Y:0000 C2/7157 9B TXY A:C8C2 X:0114 Y:0000 C2/7158 A6 D0 LDX $D0 [$00:00D0] A:C8C2 X:0114 Y:0114 C2/715A 9F 16 00 40 STA $400016,x[$40:4016] A:C8C2 X:4000 Y:0114 C2/715E BB TYX A:C8C2 X:4000 Y:0114 C2/715F BF 02 20 E5 LDA $E52002,x[$E5:2116] A:C8C2 X:0114 Y:0114 C2/7163 A6 D0 LDX $D0 [$00:00D0] A:62E6 X:0114 Y:0114 C2/7165 9F 18 00 40 STA $400018,x[$40:4018] A:62E6 X:4000 Y:0114 C2/7169 A5 E4 LDA $E4 [$00:00E4] A:62E6 X:4000 Y:0114 C2/716B 09 00 FF ORA #$FF00 A:0000 X:4000 Y:0114 C2/716E 9F 05 00 40 STA $400005,x[$40:4005] A:FF00 X:4000 Y:0114 C2/7172 A9 FE FF LDA #$FFFE A:FF00 X:4000 Y:0114 C2/7175 9F 0C 00 40 STA $40000C,x[$40:400C] A:FFFE X:4000 Y:0114 C2/7179 A5 E6 LDA $E6 [$00:00E6] A:FFFE X:4000 Y:0114 C2/717B 9F 30 00 40 STA $400030,x[$40:4030] A:00A7 X:4000 Y:0114 C2/717F A5 E8 LDA $E8 [$00:00E8] A:00A7 X:4000 Y:0114 C2/7181 9F 32 00 40 STA $400032,x[$40:4032] A:0087 X:4000 Y:0114 C2/7185 A5 EA LDA $EA [$00:00EA] A:0087 X:4000 Y:0114 C2/7187 9F 34 00 40 STA $400034,x[$40:4034] A:FFE0 X:4000 Y:0114 C2/718B A5 D8 LDA $D8 [$00:00D8] A:FFE0 X:4000 Y:0114 C2/718D EB XBA A:0108 X:4000 Y:0114 C2/718E 29 0E 00 AND #$000E A:0801 X:4000 Y:0114 C2/7191 AA TAX A:0000 X:4000 Y:0114 C2/7192 BF F0 73 C2 LDA $C273F0,x[$C2:73F0] A:0000 X:0000 Y:0114 ;palettes C2/7196 A6 D0 LDX $D0 [$00:00D0] A:0000 X:0000 Y:0114 C2/7198 E2 20 SEP #$20 A:0000 X:4000 Y:0114 C2/719A 9F 15 00 40 STA $400015,x[$40:4015] A:0000 X:4000 Y:0114 C2/719E A5 EC LDA $EC [$00:00EC] A:0000 X:4000 Y:0114 C2/71A0 9F 2D 00 40 STA $40002D,x[$40:402D] A:002A X:4000 Y:0114 C2/71A4 A5 DC LDA $DC [$00:00DC] A:002A X:4000 Y:0114 C2/71A6 29 0F AND #$0F A:0027 X:4000 Y:0114 C2/71A8 18 CLC A:0007 X:4000 Y:0114 C2/71A9 69 E8 ADC #$E8 A:0007 X:4000 Y:0114 C2/71AB 9F 12 00 40 STA $400012,x[$40:4012] A:00EF X:4000 Y:0114 C2/71AF C2 20 REP #$20 A:00EF X:4000 Y:0114 C2/71B1 A5 EE LDA $EE [$00:00EE] A:00EF X:4000 Y:0114 C2/71B3 9F 2E 00 40 STA $40002E,x[$40:402E] A:7000 X:4000 Y:0114 C2/71B7 BF 16 00 40 LDA $400016,x[$40:4016] A:7000 X:4000 Y:0114 C2/71BB 85 DA STA $DA [$00:00DA] A:C8C2 X:4000 Y:0114 C2/71BD BF 18 00 40 LDA $400018,x[$40:4018] A:C8C2 X:4000 Y:0114 C2/71C1 85 DC STA $DC [$00:00DC] A:62E6 X:4000 Y:0114 C2/71C3 A0 08 00 LDY #$0008 A:62E6 X:4000 Y:0114 C2/71C6 B7 DA LDA [$DA],y[$E6:C8CA] A:62E6 X:4000 Y:0008 C2/71C8 9F 19 00 40 STA $400019,x[$40:4019] A:0020 X:4000 Y:0008 C2/71CC A9 00 00 LDA #$0000 A:0020 X:4000 Y:0008 C2/71CF 9F 24 00 40 STA $400024,x[$40:4024] A:0000 X:4000 Y:0008 C2/71D3 A5 E0 LDA $E0 [$00:00E0] A:0000 X:4000 Y:0008 C2/71D5 89 40 00 BIT #$0040 A:2AC1 X:4000 Y:0008 C2/71D8 D0 1D BNE $1D [$71F7] A:2AC1 X:4000 Y:0008 C2/71F7 A2 00 00 LDX #$0000 A:2AC1 X:4000 Y:0008 C2/71FA BF 80 3C 40 LDA $403C80,x[$40:3C80] A:2AC1 X:0000 Y:0008 C2/71FE F0 04 BEQ $04 [$7204] A:0000 X:0000 Y:0008 C2/7204 A5 D0 LDA $D0 [$00:00D0] A:0000 X:0000 Y:0008 C2/7206 9F 80 3C 40 STA $403C80,x[$40:3C80] A:4000 X:0000 Y:0008 C2/720A A9 00 00 LDA #$0000 A:4000 X:0000 Y:0008 C2/720D 9F 82 3C 40 STA $403C82,x[$40:3C82] A:0000 X:0000 Y:0008 C2/7211 A6 D0 LDX $D0 [$00:00D0] A:0000 X:0000 Y:0008 C2/7213 60 RTS A:0000 X:4000 Y:0008 ---------------------------------------------------------------- Load Battle Palette for Characters (SA-1) C2/8885 BF 01 00 40 LDA $400001,x[$40:4081] A:6000 X:4080 Y:001C C2/8889 89 20 00 BIT #$0020 A:8132 X:4080 Y:001C C2/888C D0 01 BNE $01 [$888F] A:8132 X:4080 Y:001C 60 C2/888F 86 CE STX $CE [$00:00CE] A:8132 X:4080 Y:001C C2/8891 29 DF FF AND #$FFDF A:8132 X:4080 Y:001C C2/8894 9F 01 00 40 STA $400001,x[$40:4081] A:8112 X:4080 Y:001C C2/8898 89 02 00 BIT #$0002 A:8112 X:4080 Y:001C C2/889B D0 2F BNE $2F [$88CC] A:8112 X:4080 Y:001C Load palette for monsters (SA-1) C2/889D BF 2D 00 40 LDA $40002D,x[$40:402D] A:8108 X:4000 Y:000C C2/88A1 29 0E 00 AND #$000E A:0020 X:4000 Y:000C C2/88A4 AA TAX A:0000 X:4000 Y:000C C2/88A5 BF 1B 8B C2 LDA $C28B1B,x[$C2:8B1B] A:0000 X:0000 Y:000C C2/88A9 AA TAX A:3200 X:0000 Y:000C C2/88AA A9 01 00 LDA #$0001 A:3200 X:3200 Y:000C C2/88AD 95 00 STA $00,x [$00:3200] A:0001 X:3200 Y:000C C2/88AF E8 INX A:0001 X:3200 Y:000C C2/88B0 E8 INX A:0001 X:3201 Y:000C C2/88B1 9B TXY A:0001 X:3202 Y:000C C2/88B2 A6 CE LDX $CE [$00:00CE] A:0001 X:3202 Y:3202 C2/88B4 BF 15 00 40 LDA $400015,x[$40:4015] A:0001 X:4000 Y:3202 C2/88B8 29 FF 00 AND #$00FF A:E800 X:4000 Y:3202 C2/88BB 18 CLC A:0000 X:4000 Y:3202 C2/88BC 7F 13 00 40 ADC $400013,x[$40:4013] A:0000 X:4000 Y:3202 C2/88C0 AA TAX A:332A X:4000 Y:3202 C2/88C1 A9 1D 00 LDA #$001D A:332A X:332A Y:3202 C2/88C4 8B PHB A:001D X:332A Y:3202 C2/88C5 54 MVN 00 E5 A:001D X:332A Y:3202 ;copy monster palette to ram C2/88C8 AB PLB A:FFFF X:3348 Y:3220 C2/88C9 A6 CE LDX $CE [$00:00CE] A:FFFF X:3348 Y:3220 C2/88CB 60 RTS A:FFFF X:4000 Y:3220 C2/88CC BF 03 00 40 LDA $400003,x[$40:4083] A:8112 X:4080 Y:001C C2/88D0 C9 00 01 CMP #$0100 A:0008 X:4080 Y:001C C2/88D3 10 09 BPL $09 [$88DE] A:0008 X:4080 Y:001C C2/88D5 BF 15 00 40 LDA $400015,x[$40:4095] A:0008 X:4080 Y:001C ;underwater byte C2/88D9 29 FF 00 AND #$00FF A:0000 X:4080 Y:001C ;isolate byte C2/88DC D0 05 BNE $05 [$88E3] A:0000 X:4080 Y:001C ;branch if not at 0 C2/88DE A9 78 00 LDA #$0078 A:0000 X:4080 Y:001C ;underwater palette pointer C2/88E1 80 07 BRA $07 [$88EA] A:0078 X:4080 Y:001C C2/88EA 85 C0 STA $C0 [$00:00C0] A:0078 X:4080 Y:001C C2/88EC BF 2D 00 40 LDA $40002D,x[$40:40AD] A:0078 X:4080 Y:001C C2/88F0 29 0E 00 AND #$000E A:0024 X:4080 Y:001C C2/88F3 AA TAX A:0004 X:4080 Y:001C C2/88F4 BF 1B 8B C2 LDA $C28B1B,x[$C2:8B1F] A:0004 X:0004 Y:001C C2/88F8 AA TAX A:3240 X:0004 Y:001C C2/88F9 A9 01 00 LDA #$0001 A:3240 X:3240 Y:001C C2/88FC 95 00 STA $00,x [$00:3240] A:0001 X:3240 Y:001C C2/88FE E8 INX A:0001 X:3240 Y:001C C2/88FF E8 INX A:0001 X:3241 Y:001C C2/8900 9B TXY A:0001 X:3242 Y:001C C2/8901 A6 CE LDX $CE [$00:00CE] A:0001 X:3242 Y:3242 C2/8903 A5 C0 LDA $C0 [$00:00C0] A:0001 X:4080 Y:3242 C2/8905 18 CLC A:0078 X:4080 Y:3242 C2/8906 7F 13 00 40 ADC $400013,x[$40:4093] A:0078 X:4080 Y:3242 C2/890A AA TAX A:7D1C X:4080 Y:3242 C2/890B A9 1D 00 LDA #$001D A:7D1C X:7D1C Y:3242 C2/890E 8B PHB A:001D X:7D1C Y:3242 C2/890F 54 MVN 00 E5 A:001D X:7D1C Y:3242 ;copy palette =========================================================================== processor C2/8E23 A9 00 80 LDA #$8000 A:0000 X:0000 Y:2480 C2/8E26 1C 66 0B TRB $0B66 [$00:0B66] A:8000 X:0000 Y:2480 C2/8E29 20 EB 0B JSR $0BEB [$C2:0BEB] A:8000 X:0000 Y:2480 ;also applies ailments C2/8E2C AD 00 07 LDA $0700 [$00:0700] A:8000 X:0060 Y:2480 C2/8E2F 89 01 00 BIT #$0001 A:E000 X:0060 Y:2480 C2/8E32 D0 4C BNE $4C [$8E80] A:E000 X:0060 Y:2480 C2/8E34 9C 60 30 STZ $3060 [$00:3060] A:E000 X:0060 Y:2480 C2/8E37 AD 66 0B LDA $0B66 [$00:0B66] A:E000 X:0060 Y:2480 C2/8E3A 30 30 BMI $30 [$8E6C] A:0001 X:0060 Y:2480 C2/8E3C A9 00 20 LDA #$2000 A:0001 X:0060 Y:2480 C2/8E3F 0C 06 07 TSB $0706 [$00:0706] A:2000 X:0060 Y:2480 C2/8E42 22 06 00 C1 JSL $C10006[$C1:0006] A:2000 X:0060 Y:2480 C2/8E46 A9 00 20 LDA #$2000 A:1FE3 X:0000 Y:2480 C2/8E49 1C 06 07 TRB $0706 [$00:0706] A:2000 X:0000 Y:2480 C2/8E4C AD 82 0B LDA $0B82 [$00:0B82] A:2000 X:0000 Y:2480 C2/8E4F D0 2F BNE $2F [$8E80] A:0000 X:0000 Y:2480 C2/8E51 A9 5B 8F LDA #$8F5B A:0000 X:0000 Y:2480 C2/8E54 8D 6E 30 STA $306E [$00:306E] A:8F5B X:0000 Y:2480 C2/8E57 9C 60 30 STZ $3060 [$00:3060] A:8F5B X:0000 Y:2480 C2/8E5A A9 01 00 LDA #$0001 A:8F5B X:0000 Y:2480 C2/8E5D 0C 00 30 TSB $3000 [$00:3000] A:0001 X:0000 Y:2480 C2/8E60 22 00 08 00 JSL $000800[$00:0800] A:0001 X:0000 Y:2480 C2/8E64 20 FA 02 JSR $02FA [$C2:02FA] A:0001 X:0000 Y:2480 C2/8E67 20 E1 8E JSR $8EE1 [$C2:8EE1] A:0000 X:0000 Y:2480 C2/8E6A D0 14 BNE $14 [$8E80] A:0000 X:0000 Y:2480 C2/8E6C AD 00 07 LDA $0700 [$00:0700] A:0000 X:0000 Y:2480 C2/8E6F 89 00 80 BIT #$8000 A:E000 X:0000 Y:2480 C2/8E72 F0 06 BEQ $06 [$8E7A] A:E000 X:0000 Y:2480 C2/8E74 20 E0 02 JSR $02E0 [$C2:02E0] A:E000 X:0000 Y:2480 C2/8E77 4C 23 8E JMP $8E23 [$C2:8E23] A:0000 X:0000 Y:2480 =========================================================================== C2/8EE1 AD 00 07 LDA $0700 [$00:0700] A:0000 X:0000 Y:2680 C2/8EE4 89 20 00 BIT #$0020 A:F000 X:0000 Y:2680 C2/8EE7 F0 0D BEQ $0D [$8EF6] A:F000 X:0000 Y:2680 C2/8EF6 AD AC FF LDA $FFAC [$00:FFAC] A:F000 X:0000 Y:2680 ;load quick exit locks C2/8EF9 D0 34 BNE $34 [$8F2F] A:0000 X:0000 Y:2680 C2/8EFB AD AE FF LDA $FFAE [$00:FFAE] A:0000 X:0000 Y:2680 C2/8EFE D0 2F BNE $2F [$8F2F] A:0000 X:0000 Y:2680 ;branch if locks set C2/8F00 AD 14 30 LDA $3014 [$00:3014] A:0000 X:0000 Y:2680 ;load joypad register C2/8F03 89 00 20 BIT #$2000 A:0000 X:0000 Y:2680 ;check Select button bit C2/8F06 F0 27 BEQ $27 [$8F2F] A:0000 X:0000 Y:2680 ;branch if not set C2/8F08 AD 10 30 LDA $3010 [$00:3010] A:2000 X:2000 Y:2680 ;load other joypad register(s) C2/8F0B 89 30 00 BIT #$0030 A:2000 X:2000 Y:2680 ;check L and/or R button bit(s) C2/8F0E F0 0A BEQ $0A [$8F1A] A:2000 X:2000 Y:2680 ;branch if neither set =========================================================================== Load formation pack monster bytes -- EG: Formation Pack 2 - Spikey, Spikey C2/9092 9C 00 07 STZ $0700 [$00:0700] A:0D00 X:0200 Y:0402 C2/9095 9C 64 0B STZ $0B64 [$00:0B64] A:0D00 X:0200 Y:0402 C2/9098 A5 4B LDA $4B [$00:004B] A:0D00 X:0200 Y:0402 C2/909A 29 FF 00 AND #$00FF A:0909 X:0200 Y:0402 C2/909D 85 4B STA $4B [$00:004B] A:0009 X:0200 Y:0402 C2/909F EB XBA A:0009 X:0200 Y:0402 C2/90A0 05 4B ORA $4B [$00:004B] A:0900 X:0200 Y:0402 C2/90A2 85 4B STA $4B [$00:004B] A:0909 X:0200 Y:0402 C2/90A4 A5 43 LDA $43 [$00:0043] A:0909 X:0200 Y:0402 C2/90A6 29 00 FF AND #$FF00 A:6400 X:0200 Y:0402 C2/90A9 85 43 STA $43 [$00:0043] A:6400 X:0200 Y:0402 C2/90AB A5 42 LDA $42 [$00:0042] A:6400 X:0200 Y:0402 C2/90AD 89 01 00 BIT #$0001 A:0000 X:0200 Y:0402 C2/90B0 F0 06 BEQ $06 [$90B8] A:0000 X:0200 Y:0402 C2/90B8 A5 48 LDA $48 [$00:0048] A:0000 X:0200 Y:0402 ;load formation pack byte C2/90BA C9 FF FF CMP #$FFFF A:0002 X:0200 Y:0402 ;is it a formation pack? C2/90BD D0 0B BNE $0B [$90CA] A:0002 X:0200 Y:0402 ;branch if it is C2/90CA AF 0A 00 F9 LDA $F9000A[$F9:000A] A:0002 X:0200 Y:0402 ;load formation pack data block ptr C2/90CE 85 B8 STA $B8 [$00:00B8] A:222A X:0200 Y:0402 ;store to register C2/90D0 A9 F9 00 LDA #$00F9 A:222A X:0200 Y:0402 C2/90D3 85 BA STA $BA [$00:00BA] A:00F9 X:0200 Y:0402 C2/90D5 A5 48 LDA $48 [$00:0048] A:00F9 X:0200 Y:0402 ;load formation pack byte C2/90D7 29 FF 01 AND #$01FF A:0002 X:0200 Y:0402 ;isolate bits 0-4 (for 9-bit formation byte) C2/90DA 0A ASL A A:0002 X:0200 Y:0402 ;x4 C2/90DB 0A ASL A A:0004 X:0200 Y:0402 C2/90DC A8 TAY A:0008 X:0200 Y:0402 ;transfer to Y for indirect read C2/90DD B7 B8 LDA [$B8],y[$F9:2232] A:0008 X:0200 Y:0008 ;load formation 1,2 from data counter C2/90DF 85 B0 STA $B0 [$00:00B0] A:0504 X:0200 Y:0008 ;store to register C2/90E1 C8 INY A:0504 X:0200 Y:0008 ;increment data counter twice C2/90E2 C8 INY A:0504 X:0200 Y:0009 C2/90E3 B7 B8 LDA [$B8],y[$F9:2234] A:0504 X:0200 Y:000A ;load formation 3, 9-bit flag C2/90E5 85 B2 STA $B2 [$00:00B2] A:0005 X:0200 Y:000A ;store to register C2/90E7 A5 4A LDA $4A [$00:004A] A:0005 X:0200 Y:000A ;??? indirect ptr for formation byte storage C2/90E9 29 FF 00 AND #$00FF A:0900 X:0200 Y:000A ;isolate indirect ptr byte C2/90EC 0A ASL A A:0000 X:0200 Y:000A ;double for ptr read C2/90ED AA TAX A:0000 X:0200 Y:000A ;transfer to X to JMP indirect address C2/90EE 7C F1 90 JMP ($90F1,x)[$C2:90F7] A:0000 X:0000 Y:000A ;jump to byte storage function ...From 90EE: JMP ($90F1,x)... F7 90 ;Formation 1 08 91 ;Formation 2 1A 91 ;Formation 3 Formation 1 C2/90F7 A5 B0 LDA $B0 [$00:00B0] A:0000 X:0000 Y:000A ;load formation 1 C2/90F9 29 FF 00 AND #$00FF A:0504 X:0000 Y:000A ;isolate formation 1 byte C2/90FC 85 B4 STA $B4 [$00:00B4] A:0004 X:0000 Y:000A ;store to register C2/90FE A5 B3 LDA $B3 [$00:00B3] A:0004 X:0000 Y:000A ;load 9-bit flag (flag not set this time) C2/9100 29 01 00 AND #$0001 A:0400 X:0000 Y:000A ;isolate 9-bit formation byte flag C2/9103 EB XBA A:0000 X:0000 Y:000A ;flip bytes for little endian read C2/9104 05 B4 ORA $B4 [$00:00B4] A:0000 X:0000 Y:000A ;set current formation bits C2/9106 80 23 BRA $23 [$912B] A:0004 X:0000 Y:000A ;always branch C2/912B 8F 0E FA 7E STA $7EFA0E[$7E:FA0E] A:0004 X:0000 Y:000A ;store as current formation C2/912F 60 RTS A:0004 X:0000 Y:000A ;end ================================================================ Load Battle RAM stuff ...From C2/8DC4: JSR... C2/9130 A2 0E 00 ;do this 7 times BF BD F8 7F ;stored Jump power increment counter 9F 10 E0 7E ;save to Battle RAM CA ;subtract 1 CA ;subtract 1 10 F4 ;loop AF 0E FA 7E 0A 18 6F 0E FA 7E A8 C2/914A AF 0E 00 F9 ;load Formation Pack Stats (Special Byte, Executed Battle Event, "Can't Run", Music) 85 EA A9 F9 00 85 EC B7 EA C2/9157 8F 1C FA 7E ;save special byte to memory 7E:FA1C (only Bowser fight uses this) C8 C8 B7 EA 29 FF 00 C2/9162 8F 1E FA 7E ;save to byte that sets "Can't Run" bit and Music C2/9166 AF 1C FA 7E ;load special byte (only Bowser fight uses this) 4A 4A 29 0E 00 ;isolate AA BF 2D 01 C2 ;load monster RAM addresses 8D 4E 07 AF 1D FA 7E ;load executed battle event at the beginning of battle 29 FF 00 C9 FF 00 F0 1A 85 E2 A9 40 00 85 E0 A9 00 00 85 E4 AF 00 60 FA ;Battle Event pointer block pointer 85 EA A9 FA 00 85 EC 20 02 07 ;??? JSR A5 4B 29 FF 00 A8 C2/91A3 AF 1C 00 F9 ; ??? table for something used here C2/91A7 85 EA STA $EA [$00:00EA] A:0190 X:0000 Y:0000 C2/91A9 A9 F9 00 LDA #$00F9 A:0190 X:0000 Y:0000 C2/91AC 85 EC STA $EC [$00:00EC] A:00F9 X:0000 Y:0000 C2/91AE B7 EA LDA [$EA],y[$F9:0190] A:00F9 X:0000 Y:0000 C2/91B0 29 FF 00 AND #$00FF A:0000 X:0000 Y:0000 C2/91B3 C9 FF 00 CMP #$00FF A:0000 X:0000 Y:0000 C2/91B6 F0 1B BEQ $1B [$91D3] A:0000 X:0000 Y:0000 C2/91B8 0A ASL A A:0000 X:0000 Y:0000 C2/91B9 85 E4 STA $E4 [$00:00E4] A:0000 X:0000 Y:0000 C2/91BB A9 40 00 LDA #$0040 A:0000 X:0000 Y:0000 C2/91BE 85 E0 STA $E0 [$00:00E0] A:0040 X:0000 Y:0000 C2/91C0 A9 00 00 LDA #$0000 A:0040 X:0000 Y:0000 C2/91C3 85 E2 STA $E2 [$00:00E2] A:0000 X:0000 Y:0000 C2/91C5 AF 02 60 FA LDA $FA6002[$FA:6002] A:0000 X:0000 Y:0000 ;Battle event pointer C2/91C9 85 EA STA $EA [$00:00EA] A:ECF7 X:0000 Y:0000 ...Continues C2/91ED A9 00 00 8F 00 FA 7E ;set ??? to zero 8F 02 FA 7E ;total XP gained from battle 8F 04 FA 7E ;total coins gained from battle 8F 06 FA 7E ;won item 8F 00 3D 40 AF B1 F8 7F ;load Overworld FP 8F 0C FA 7E ;save to Battle FP A9 80 00 85 E0 A9 08 00 85 E2 A9 00 00 85 E4 AF 30 A0 C2 85 EA A9 C2 00 85 EC 20 02 07 AD 7C 0B 89 01 00 F0 01 60 C2/8DD2 20 40 6F ;load GFX for battle menus ================================================================ C2/9235 AD 7C 0B LDA $0B7C [$00:0B7C] A:0001 X:004E Y:0008 C2/9238 89 02 00 BIT #$0002 A:0000 X:004E Y:0008 C2/923B D0 2F BNE $2F [$926C] A:0000 X:004E Y:0008 C2/923D AD 64 0B LDA $0B64 [$00:0B64] A:0000 X:004E Y:0008 C2/9240 F0 0F BEQ $0F [$9251] A:0000 X:004E Y:0008 C2/9251 20 00 96 JSR $9600 [$C2:9600] A:0000 X:004E Y:0008 C2/9254 AD 64 0B LDA $0B64 [$00:0B64] A:FFFF X:0002 Y:0008 C2/9257 F0 0C BEQ $0C [$9265] A:0000 X:0002 Y:0008 C2/9265 22 00 A0 C2 JSL $C2A000[$C2:A000] A:0000 X:0002 Y:0008 ;loader C2/9269 20 B2 98 JSR $98B2 [$C2:98B2] A:0000 X:0002 Y:0008 ;Speed Calculation (Turn order) 60 ================================================================ End of battle C2/926D A2 0E 00 LDX #$000E A:0000 X:2000 Y:2000 C2/9270 BF 10 E0 7E LDA $7EE010,x[$7E:E01E] A:0000 X:000E Y:2000 ;load Jump power increment counter C2/9274 9F BD F8 7F STA $7FF8BD,x[$7F:F8CB] A:0000 X:000E Y:2000 ;store Jump power C2/9278 CA DEX A:0000 X:000E Y:2000 C2/9279 CA DEX A:0000 X:000D Y:2000 C2/927A 10 F4 BPL $F4 [$9270] A:0000 X:000C Y:2000 ;move to next C2/927C E2 20 SEP #$20 A:0008 X:FFFE Y:2000 C2/927E AF 0C FA 7E LDA $7EFA0C[$7E:FA0C] A:0008 X:FFFE Y:2000 ;load current battle FP C2/9282 8F B1 F8 7F STA $7FF8B1[$7F:F8B1] A:0063 X:FFFE Y:2000 ;store as current FP C2/9286 C2 20 REP #$20 A:0063 X:FFFE Y:2000 C2/9288 A2 00 00 LDX #$0000 A:0063 X:FFFE Y:2000 C2/928B 86 B0 STX $B0 [$00:00B0] A:0063 X:0000 Y:2000 C2/928D BF 27 01 C2 LDA $C20127,x[$C2:0127] A:0063 X:0000 Y:2000 C2/9291 AA TAX A:FA80 X:0000 Y:2000 C2/9292 86 B2 STX $B2 [$00:00B2] A:FA80 X:FA80 Y:2000 C2/9294 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:2000 ;load mortal status C2/9298 29 C0 00 AND #$00C0 A:0300 X:FA80 Y:2000 ;isolate mortal bits C2/929B C9 80 00 CMP #$0080 A:0000 X:FA80 Y:2000 ;check if slot is occupied C2/929E F0 2F BEQ $2F [$92CF] A:0000 X:FA80 Y:2000 ;branch if not C2/92A0 C9 C0 00 CMP #$00C0 A:0000 X:FA80 Y:2000 ;check if dead C2/92A3 D0 07 BNE $07 [$92AC] A:0000 X:FA80 Y:2000 ;branch if not C2/92A5 A9 01 00 LDA #$0001 A:0000 X:FA80 Y:2000 C2/92A8 9F 11 00 7E STA $7E0011,x[$7E:FA91] A:0000 X:FA80 Y:2000 ;set current HP to 1 C2/92AC BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:0000 X:FA80 Y:2000 ;load character ID in slot 1 C2/92B0 29 FF 00 AND #$00FF A:5503 X:FA80 Y:2000 C2/92B3 AA TAX A:0003 X:FA80 Y:2000 C2/92B4 BF 4C 97 C2 LDA $C2974C,x[$C2:974F] A:0003 X:0003 Y:2000 C2/92B8 29 FF 00 AND #$00FF A:503C X:0003 Y:2000 C2/92BB 18 CLC A:003C X:0003 Y:2000 C2/92BC 69 00 F8 ADC #$F800 A:003C X:0003 Y:2000 C2/92BF A8 TAY A:F83C X:0003 Y:2000 C2/92C0 A5 B2 LDA $B2 [$00:00B2] A:F83C X:0003 Y:F83C C2/92C2 18 CLC A:FA80 X:0003 Y:F83C C2/92C3 69 10 00 ADC #$0010 A:FA80 X:0003 Y:F83C C2/92C6 AA TAX A:FA90 X:0003 Y:F83C C2/92C7 A9 13 00 LDA #$0013 A:FA90 X:FA90 Y:F83C C2/92CA 8B PHB A:0013 X:FA90 Y:F83C C2/92CB 54 7F 7E MVN 7F 7E A:0013 X:FA90 Y:F83C ;copy battle stats to overworld stats C2/92CB 54 7F 7E MVN 7F 7E A:0012 X:FA91 Y:F83D ;... C2/92CB 54 7F 7E MVN 7F 7E A:0011 X:FA92 Y:F83E C2/92CB 54 7F 7E MVN 7F 7E A:0010 X:FA93 Y:F83F C2/92CB 54 7F 7E MVN 7F 7E A:000F X:FA94 Y:F840 C2/92CB 54 7F 7E MVN 7F 7E A:000E X:FA95 Y:F841 C2/92CB 54 7F 7E MVN 7F 7E A:000D X:FA96 Y:F842 C2/92CB 54 7F 7E MVN 7F 7E A:000C X:FA97 Y:F843 C2/92CB 54 7F 7E MVN 7F 7E A:000B X:FA98 Y:F844 C2/92CB 54 7F 7E MVN 7F 7E A:000A X:FA99 Y:F845 C2/92CB 54 7F 7E MVN 7F 7E A:0009 X:FA9A Y:F846 C2/92CB 54 7F 7E MVN 7F 7E A:0008 X:FA9B Y:F847 C2/92CB 54 7F 7E MVN 7F 7E A:0007 X:FA9C Y:F848 C2/92CB 54 7F 7E MVN 7F 7E A:0006 X:FA9D Y:F849 C2/92CB 54 7F 7E MVN 7F 7E A:0005 X:FA9E Y:F84A C2/92CB 54 7F 7E MVN 7F 7E A:0004 X:FA9F Y:F84B C2/92CB 54 7F 7E MVN 7F 7E A:0003 X:FAA0 Y:F84C C2/92CB 54 7F 7E MVN 7F 7E A:0002 X:FAA1 Y:F84D C2/92CB 54 7F 7E MVN 7F 7E A:0001 X:FAA2 Y:F84E C2/92CB 54 7F 7E MVN 7F 7E A:0000 X:FAA3 Y:F84F ;... C2/92CE AB PLB A:FFFF X:FAA4 Y:F850 ;pull DB C2/92CF A6 B0 LDX $B0 [$00:00B0] A:FFFF X:FBA4 Y:F814 C2/92D1 E8 INX A:FFFF X:0004 Y:F814 C2/92D2 E8 INX A:FFFF X:0005 Y:F814 C2/92D3 E0 05 00 CPX #$0005 A:FFFF X:0006 Y:F814 C2/92D6 30 B3 BMI $B3 [$928B] A:FFFF X:0006 Y:F814 C2/92D8 64 B0 STZ $B0 [$00:00B0] A:FFFF X:0006 Y:F814 C2/92DA A2 00 00 LDX #$0000 A:FFFF X:0006 Y:F814 C2/92DD 9B TXY A:00FF X:0004 Y:0002 C2/92DE BF 27 01 C2 LDA $C20127,x[$C2:012B] A:00FF X:0004 Y:0004 ;load character slot C2/92E2 AA TAX A:FB80 X:0004 Y:0004 C2/92E3 BF 00 00 7E LDA $7E0000,x[$7E:FB80] A:FB80 X:FB80 Y:0004 ;load mortal status C2/92E7 29 C0 00 AND #$00C0 A:0000 X:FB80 Y:0004 C2/92EA D0 0E BNE $0E [$92FA] A:0000 X:FB80 Y:0004 ;branch if dead C2/92EC BF 1E 00 7E LDA $7E001E,x[$7E:FB9E] A:0000 X:FB80 Y:0004 ;load accessory C2/92F0 29 FF 00 AND #$00FF A:00FF X:FB80 Y:0004 C2/92F3 C9 58 00 CMP #$0058 A:00FF X:FB80 Y:0004 ;check if Coin Trick equipped C2/92F6 D0 02 BNE $02 [$92FA] A:00FF X:FB80 Y:0004 ;branch if not C2/92F8 E6 B0 INC $B0 A:00FF X:FB00 Y:0004 ;set double flag C2/92FA BB TYX A:00FF X:FB80 Y:0004 C2/92FB E8 INX A:00FF X:0004 Y:0004 C2/92FC E8 INX A:00FF X:0005 Y:0004 C2/92FD E0 05 00 CPX #$0005 A:00FF X:0006 Y:0004 C2/9300 30 DB BMI $DB [$92DD] A:00FF X:0006 Y:0004 C2/9302 A5 B0 LDA $B0 [$00:00B0] A:00FF X:0006 Y:0004 ;load double flag C2/9304 F0 09 BEQ $09 [$930F] A:0000 X:0006 Y:0004 ;branch if not set C2/9306 AF 04 FA 7E LDA $7EFA04 [$7E:FA04] A:0000 X:0006 Y:0004 ;load coins won C2/930A 0A ASL A A:0000 X:0006 Y:0004 ;double C2/930B 8F 04 FA 7E STA $7EFA04 [$7E:FA04] A:0000 X:0006 Y:0004 ;store as coins won C2/930F AF AF F8 7F LDA $7FF8AF[$7F:F8AF] A:0000 X:0006 Y:0004 ;load current coins C2/9313 18 CLC A:03E7 X:0006 Y:0004 C2/9314 6F 04 FA 7E ADC $7EFA04[$7E:FA04] A:03E7 X:0006 Y:0004 ;add to coins won C2/9318 C9 E7 03 CMP #$03E7 A:03E8 X:0006 Y:0004 ;check if overflow C2/931B 30 03 BMI $03 [$9320] A:03E8 X:0006 Y:0004 ;branch if less than 999 C2/931D A9 E7 03 LDA #$03E7 A:03E8 X:0006 Y:0004 ;truncate coins to 999 C2/9320 8F AF F8 7F STA $7FF8AF[$7F:F8AF] A:03E7 X:0006 Y:0004 ;store as current coins C2/9324 60 RTS A:03E7 X:0006 Y:0004 ================================================================= load Formation data DISASSEMBLER NOTE: There are up to 8 possible monsters on the field at once. So, here the monsters are assigned to one of 8 bits. C2/935E sets the counter to 80, then does an LSR each time a monster has been accounted for. The byte for "Is Monster Used?" status is checked first, then "Is Monster hidden?" is checked second. C2/9325 ;start ... ... clears monster mortal status + ID # ... C2/935E A9 80 ;set bit-7 (up to 8 possible monsters on field at once) 85 B5 A6 B2 C2/9364 BF 00 C0 F9 LDA $F9C000,x[$F9:C000] A:0080 X:0000 Y:000E ;load Formations data (26 bytes) C2/9368 85 B6 STA $B6 [$00:00B6] A:0080 X:0000 Y:000E ;save to byte to see "Is Monster Used?" in battle C2/936A BF 01 C0 F9 LDA $F9C001,x[$F9:C001] A:0080 X:0000 Y:000E ;load byte 2 C2/936E 85 B7 STA $B7 [$00:00B7] A:0000 X:0000 Y:000E ;save to byte to check "Is Monster hidden?" C2/9370 A9 08 LDA #$08 A:0000 X:0000 Y:000E ;pull address over 4 times C2/9372 85 BC STA $BC [$00:00BC] A:0008 X:0000 Y:000E C2/9374 E8 INX A:0008 X:0000 Y:000E ;subtract 1 C2/9375 E8 INX A:0008 X:0001 Y:000E ; C2/9376 86 B2 STX $B2 [$00:00B2] A:0008 X:0002 Y:000E C2/9378 A5 B5 LDA $B5 [$00:00B5] A:0008 X:0002 Y:000E ;the monster is assigned to one of 8 bits C2/937A 24 B6 BIT $B6 [$00:00B6] A:0080 X:0002 Y:000E ;test bits from B6 (Is monster used? bits) C2/937C F0 52 BEQ $52 [$93D0] A:0080 X:0002 Y:000E ;jump to C2/93D0 C2/937E 24 B7 BIT $B7 [$00:00B7] A:0080 X:0002 Y:000E ;test bits from B7 (Is Monster hidden? bits) C2/9380 D0 04 BNE $04 [$9386] A:0080 X:0002 Y:000E C2/9382 A9 00 LDA #$00 A:0080 X:0002 Y:000E ;sets mortality status C2/9384 80 02 BRA $02 [$9388] A:0000 X:0002 Y:000E C2/9386 A9 C0 ;sets target moral status to Disabled/Removed C2/9388 85 B8 STA $B8 [$00:00B8] A:0000 X:0002 Y:000E C2/938A BF 00 C0 F9 LDA $F9C000,x[$F9:C002] A:0000 X:0002 Y:000E ;load monster number C2/938E 85 B9 STA $B9 [$00:00B9] A:0000 X:0002 Y:000E C2/9390 BF 01 C0 F9 LDA $F9C001,x[$F9:C003] A:0000 X:0002 Y:000E ;load Xcoordinate C2/9394 85 BA STA $BA [$00:00BA] A:00A7 X:0002 Y:000E C2/9396 BF 02 C0 F9 LDA $F9C002,x[$F9:C004] A:00A7 X:0002 Y:000E ;load Ycoordinate C2/939A 85 BB STA $BB [$00:00BB] A:0087 X:0002 Y:000E C2/939C A6 BE LDX $BE [$00:00BE] A:0087 X:0002 Y:000E C2/939E E8 INX A:0087 X:FFFE Y:000E C2/939F E8 INX A:0087 X:FFFF Y:000E C2/93A0 86 BE STX $BE [$00:00BE] A:0087 X:0000 Y:000E C2/93A2 C2 20 REP #$20 A:0087 X:0000 Y:000E C2/93A4 BF 2D 01 C2 LDA $C2012D,x[$C2:012D] A:0087 X:0000 Y:000E ;load RAM address location for current monster C2/93A8 AA TAX A:FC00 X:0000 Y:000E C2/93A9 E2 20 SEP #$20 A:FC00 X:FC00 Y:000E C2/93AB A5 B8 LDA $B8 [$00:00B8] A:FC00 X:FC00 Y:000E C2/93AD 9F 00 00 7E STA $7E0000,x[$7E:FC00] A:FC00 X:FC00 Y:000E C2/93B1 A5 B9 LDA $B9 [$00:00B9] A:FC00 X:FC00 Y:000E C2/93B3 9F 01 00 7E STA $7E0001,x[$7E:FC01] A:FC00 X:FC00 Y:000E C2/93B7 A5 BA LDA $BA [$00:00BA] A:FC00 X:FC00 Y:000E C2/93B9 9F 3B 00 7E STA $7E003B,x[$7E:FC3B] A:FCA7 X:FC00 Y:000E C2/93BD A5 BB LDA $BB [$00:00BB] A:FCA7 X:FC00 Y:000E C2/93BF 9F 3C 00 7E STA $7E003C,x[$7E:FC3C] A:FC87 X:FC00 Y:000E C2/93C3 20 DE 93 JSR $93DE [$C2:93DE] A:FC87 X:FC00 Y:000E C2/93D0 46 B5 LSR $B5 [$00:00B5] A:0001 X:0017 Y:0008 ;8-bit counter = 8 possible monsters C2/93D2 A6 B2 LDX $B2 [$00:00B2] A:0001 X:0017 Y:0008 C2/93D4 E8 INX A:0001 X:0017 Y:0008 C2/93D5 E8 INX A:0001 X:0018 Y:0008 C2/93D6 E8 INX A:0001 X:0019 Y:0008 C2/93D7 C6 BC DEC $BC [$00:00BC] A:0001 X:001A Y:0008 C2/93D9 D0 9B BNE $9B [$9376] A:0001 X:001A Y:0008 C2/93DB C2 20 REP #$20 A:0001 X:001A Y:0008 C2/93DD 60 RTS A:0001 X:001A Y:0008 Load monster stats C2/93DE C2 20 REP #$20 A:FC7F X:FC00 Y:000E ;set 16-bit A C2/93E0 86 C0 STX $C0 [$00:00C0] A:FC7F X:FC00 Y:000E ;store for indirect RAM reads C2/93E2 AF 00 00 F9 LDA $F90000[$F9:0000] A:FC7F X:FC00 Y:000E ;load monster stat ptr data block C2/93E6 85 C2 STA $C2 [$00:00C2] A:0026 X:FC00 Y:000E C2/93E8 A9 F9 00 LDA #$00F9 A:0026 X:FC00 Y:000E ;load databank to read C2/93EB 85 C4 STA $C4 [$00:00C4] A:00F9 X:FC00 Y:000E ;store to databank register C2/93ED BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:00F9 X:FC00 Y:000E ;load monster ID # C2/93F1 29 FF 00 AND #$00FF A:5501 X:FC00 Y:000E ;isolate monster byte C2/93F4 0A ASL A A:0001 X:FC00 Y:000E C2/93F5 A8 TAY A:0002 X:FC00 Y:000E C2/93F6 B7 C2 LDA [$C2],y[$F9:0028] A:0002 X:FC00 Y:0002 ;read from stat ptr C2/93F8 85 C2 STA $C2 [$00:00C2] A:0236 X:FC00 Y:0002 ;store to register C2/93FA 8A TXA A:0236 X:FC00 Y:0002 C2/93FB 18 CLC A:FC00 X:FC00 Y:0002 ;clear carry flag C2/93FC 69 13 00 ADC #$0013 A:FC00 X:FC00 Y:0002 ;add constant to copy indirect to RAM C2/93FF A8 TAY A:FC13 X:FC00 Y:0002 C2/9400 A6 C2 LDX $C2 [$00:00C2] A:FC13 X:FC00 Y:FC13 ;load offset to copy indirect from rom C2/9402 A9 0F 00 LDA #$000F A:FC13 X:0236 Y:FC13 ;load number of bytes to copy +1 C2/9405 8B PHB A:000F X:0236 Y:FC13 ;push databank register for copying C2/9406 54 7E F9 MVN 7E F9 A:000F X:0236 Y:FC13 ;copy monster stats to RAM C2/9406 54 7E F9 MVN 7E F9 A:000E X:0237 Y:FC14 ... C2/9406 54 7E F9 MVN 7E F9 A:000D X:0238 Y:FC15 ... C2/9406 54 7E F9 MVN 7E F9 A:000C X:0239 Y:FC16 C2/9406 54 7E F9 MVN 7E F9 A:000B X:023A Y:FC17 C2/9406 54 7E F9 MVN 7E F9 A:000A X:023B Y:FC18 C2/9406 54 7E F9 MVN 7E F9 A:0009 X:023C Y:FC19 C2/9406 54 7E F9 MVN 7E F9 A:0008 X:023D Y:FC1A C2/9406 54 7E F9 MVN 7E F9 A:0007 X:023E Y:FC1B C2/9406 54 7E F9 MVN 7E F9 A:0006 X:023F Y:FC1C C2/9406 54 7E F9 MVN 7E F9 A:0005 X:0240 Y:FC1D C2/9406 54 7E F9 MVN 7E F9 A:0004 X:0241 Y:FC1E C2/9406 54 7E F9 MVN 7E F9 A:0003 X:0242 Y:FC1F C2/9406 54 7E F9 MVN 7E F9 A:0002 X:0243 Y:FC20 C2/9406 54 7E F9 MVN 7E F9 A:0001 X:0244 Y:FC21 ... C2/9406 54 7E F9 MVN 7E F9 A:0000 X:0245 Y:FC22 ... C2/9409 AB PLB A:FFFF X:0246 Y:FC23 ;pull databank register C2/940A A6 C0 LDX $C0 [$00:00C0] A:FFFF X:0246 Y:FC23 ;load indirect RAM address C2/940C BF 13 00 7E LDA $7E0013,x[$7E:FC13] A:FFFF X:FC00 Y:FC23 ;load monster 1's max HP C2/9410 9F 11 00 7E STA $7E0011,x[$7E:FC11] A:0014 X:FC00 Y:FC23 ;store as current HP C2/9414 BF 22 00 7E LDA $7E0022,x[$7E:FC22] A:0014 X:FC00 Y:FC23 ;load monster's 'entrance style' byte C2/9418 29 30 00 AND #$0030 A:5542 X:FC00 Y:FC23 ;isolate 'elevation' bits C2/941B 9F 3D 00 7E STA $7E003D,x[$7E:FC3D] A:0000 X:FC00 Y:FC23 ;store as current elevation C2/941F A9 FF FF LDA #$FFFF A:0000 X:FC00 Y:FC23 C2/9422 9F 3E 00 7E STA $7E003E,x[$7E:FC3E] A:FFFF X:FC00 Y:FC23 C2/9426 AF 1E 00 F9 LDA $F9001E[$F9:001E] A:FFFF X:FC00 Y:FC23 ;load targetting cursor x/y coordinates C2/942A 85 C2 STA $C2 [$00:00C2] A:B944 X:FC00 Y:FC23 C2/942C A9 F9 00 LDA #$00F9 A:B944 X:FC00 Y:FC23 C2/942F 85 C4 STA $C4 [$00:00C4] A:00F9 X:FC00 Y:FC23 C2/9431 BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:00F9 X:FC00 Y:FC23 ;load monster byte C2/9435 29 FF 00 AND #$00FF A:5501 X:FC00 Y:FC23 ;isolate monster byte C2/9438 A8 TAY A:0001 X:FC00 Y:FC23 ;transfer to Y for indirect read C2/9439 B7 C2 LDA [$C2],y[$F9:B945] A:0001 X:FC00 Y:0001 ;load 'target position' from monster byte C2/943B A8 TAY A:2212 X:FC00 Y:0001 C2/943C 29 F0 00 AND #$00F0 A:2212 X:FC00 Y:2212 C2/943F 4A LSR A A:0010 X:FC00 Y:2212 ;isolate X coord bits C2/9440 85 C2 STA $C2 [$00:00C2] A:0008 X:FC00 Y:2212 C2/9442 98 TYA A:0008 X:FC00 Y:2212 C2/9443 29 0F 00 AND #$000F A:2212 X:FC00 Y:2212 ;isolate Y coord bits C2/9446 0A ASL A A:0002 X:FC00 Y:2212 ;x8 C2/9447 0A ASL A A:0004 X:FC00 Y:2212 C2/9448 0A ASL A A:0008 X:FC00 Y:2212 C2/9449 EB XBA A:0010 X:FC00 Y:2212 C2/944A 05 C2 ORA $C2 [$00:00C2] A:1000 X:FC00 Y:2212 ;combine X coord & Y coord bits C2/944C 9F 37 00 7E STA $7E0037,x[$7E:FC37] A:1008 X:FC00 Y:2212 ;store to 'target position' C2/9450 A9 00 00 LDA #$0000 A:1008 X:FC00 Y:2212 C2/9453 9F 40 00 7E STA $7E0040,x[$7E:FC40] A:0000 X:FC00 Y:2212 C2/9457 9F 42 00 7E STA $7E0042,x[$7E:FC42] A:0000 X:FC00 Y:2212 C2/945B 9F 44 00 7E STA $7E0044,x[$7E:FC44] A:0000 X:FC00 Y:2212 C2/945F E2 20 SEP #$20 A:0000 X:FC00 Y:2212 ;set 8-bit A C2/9461 BF 1E 00 7E LDA $7E001E,x[$7E:FC1E] A:0000 X:FC00 Y:2212 ;load special defense, morph success rate, attack sound(hit) C2/9465 4A LSR A A:0008 X:FC00 Y:2212 ;divide by 16 to attack sound C2/9466 4A LSR A A:0004 X:FC00 Y:2212 C2/9467 4A LSR A A:0002 X:FC00 Y:2212 C2/9468 4A LSR A A:0001 X:FC00 Y:2212 C2/9469 29 0F AND #$0F A:0000 X:FC00 Y:2212 ;isolate attack sound(hit) bits C2/946B 9F 2F 00 7E STA $7E002F,x[$7E:FC2F] A:0000 X:FC00 Y:2212 C2/946F BF 22 00 7E LDA $7E0022,x[$7E:FC22] A:0000 X:FC00 Y:2212 ;load 'entrance style' byte C2/9473 29 0F AND #$0F A:0042 X:FC00 Y:2212 ;isolate entrance style bits C2/9475 9F 2E 00 7E STA $7E002E,x[$7E:FC2E] A:0002 X:FC00 Y:2212 ;store as entrance style C2/9479 BF 22 00 7E LDA $7E0022,x[$7E:FC22] A:0002 X:FC00 Y:2212 ;load 'entrance style' byte C2/947D 2A ROL A A:0042 X:FC00 Y:2212 ;rotate left to coin animation bit C2/947E 2A ROL A A:0085 X:FC00 Y:2212 C2/947F 2A ROL A A:000A X:FC00 Y:2212 C2/9480 29 03 AND #$03 A:0015 X:FC00 Y:2212 ;isolate coin animation bit C2/9482 9F 2C 00 7E STA $7E002C,x[$7E:FC2C] A:0001 X:FC00 Y:2212 ;store as coin animation C2/9486 BF 1E 00 7E LDA $7E001E,x[$7E:FC1E] A:0001 X:FC00 Y:2212 ;load special defense C2/948A 29 03 AND #$03 A:0008 X:FC00 Y:2212 ;isolate 1st three bits C2/948C 9F 41 00 7E STA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:2212 ;store as Monster Invincibility (bit0) Mortality Protection (bit1) C2/9490 BF 15 00 7E LDA $7E0015,x[$7E:FC15] A:0000 X:FC00 Y:2212 ;speed C2/9494 9F 70 00 7E STA $7E0070,x[$7E:FC70] A:000E X:FC00 Y:2212 ;modified speed C2/9498 BF 16 00 7E LDA $7E0016,x[$7E:FC16] A:000E X:FC00 Y:2212 ;attack C2/949C 9F 72 00 7E STA $7E0072,x[$7E:FC72] A:0006 X:FC00 Y:2212 ;modified attack C2/94A0 BF 17 00 7E LDA $7E0017,x[$7E:FC17] A:0006 X:FC00 Y:2212 ;defense C2/94A4 9F 74 00 7E STA $7E0074,x[$7E:FC74] A:000B X:FC00 Y:2212 ;modified defense C2/94A8 BF 18 00 7E LDA $7E0018,x[$7E:FC18] A:000B X:FC00 Y:2212 ;magic attack C2/94AC 9F 76 00 7E STA $7E0076,x[$7E:FC76] A:0004 X:FC00 Y:2212 ;modified magic attack C2/94B0 BF 19 00 7E LDA $7E0019,x[$7E:FC19] A:0004 X:FC00 Y:2212 ;magic defense C2/94B4 9F 78 00 7E STA $7E0078,x[$7E:FC78] A:0002 X:FC00 Y:2212 ;modified magic defense C2/94B8 A9 00 LDA #$00 A:0002 X:FC00 Y:2212 C2/94BA 9F 71 00 7E STA $7E0071,x[$7E:FC71] A:0000 X:FC00 Y:2212 C2/94BE 9F 73 00 7E STA $7E0073,x[$7E:FC73] A:0000 X:FC00 Y:2212 C2/94C2 9F 75 00 7E STA $7E0075,x[$7E:FC75] A:0000 X:FC00 Y:2212 C2/94C6 9F 77 00 7E STA $7E0077,x[$7E:FC77] A:0000 X:FC00 Y:2212 C2/94CA 9F 79 00 7E STA $7E0079,x[$7E:FC79] A:0000 X:FC00 Y:2212 C2/94CE 9F 4B 00 7E STA $7E004B,x[$7E:FC4B] A:0000 X:FC00 Y:2212 ;element on weapon C2/94D2 BF 1F 00 7E LDA $7E001F,x[$7E:FC1F] A:0000 X:FC00 Y:2212 ;lower bits are approaching attack sounds, upper bits are ineffective elements C2/94D6 9F 4C 00 7E STA $7E004C,x[$7E:FC4C] A:0080 X:FC00 Y:2212 ;ineffective elements C2/94DA BF 20 00 7E LDA $7E0020,x[$7E:FC20] A:0080 X:FC00 Y:2212 ;spells list C2/94DE 9F 4D 00 7E STA $7E004D,x[$7E:FC4D] A:0001 X:FC00 Y:2212 ;elemental strength (-50% damage from set element) C2/94E2 BF 21 00 7E LDA $7E0021,x[$7E:FC21] A:0001 X:FC00 Y:2212 ; C2/94E6 9F 4E 00 7E STA $7E004E,x[$7E:FC4E] A:0000 X:FC00 Y:2212 ;ailment protection C2/94EA A9 00 LDA #$00 A:0000 X:FC00 Y:2212 C2/94EC 9F 4F 00 7E STA $7E004F,x[$7E:FC4F] A:0000 X:FC00 Y:2212 ;status enhancements from equipment C2/94F0 60 RTS A:0000 X:FC00 Y:2212 ;end ================================================================= MONSTER: Stats C2/94F1 C2 20 REP #$20 A:FFFF X:FC00 Y:000C C2/94F3 86 C0 STX $C0 [$00:00C0] A:FFFF X:FC00 Y:000C C2/94F5 A9 C0 00 LDA #$00C0 A:FFFF X:FC00 Y:000C C2/94F8 85 E0 STA $E0 [$00:00E0] A:00C0 X:FC00 Y:000C C2/94FA BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:00C0 X:FC00 Y:000C C2/94FE 29 FF 00 AND #$00FF A:0001 X:FC00 Y:000C C2/9501 09 00 01 ORA #$0100 A:0001 X:FC00 Y:000C C2/9504 85 E2 STA $E2 [$00:00E2] A:0101 X:FC00 Y:000C C2/9506 A9 00 00 LDA #$0000 A:0101 X:FC00 Y:000C C2/9509 85 E4 STA $E4 [$00:00E4] A:0000 X:FC00 Y:000C C2/950B AF 00 00 F5 LDA $F50000[$F5:0000] A:0000 X:FC00 Y:000C C2/950F 85 EA STA $EA [$00:00EA] A:0002 X:FC00 Y:000C C2/9511 A9 F5 00 LDA #$00F5 A:0002 X:FC00 Y:000C C2/9514 85 EC STA $EC [$00:00EC] A:00F5 X:FC00 Y:000C C2/9516 20 19 07 JSR $0719 [$C2:0719] A:00F5 X:FC00 Y:000C ; ??? C2/9519 86 C2 STX $C2 [$00:00C2] A:0000 X:2400 Y:0202 C2/951B A5 C0 LDA $C0 [$00:00C0] A:0000 X:2400 Y:0202 C2/951D 9F 0A 00 40 STA $40000A,x[$40:240A] A:FC00 X:2400 Y:0202 C2/9521 8A TXA A:FC00 X:2400 Y:0202 C2/9522 A6 C0 LDX $C0 [$00:00C0] A:2400 X:2400 Y:0202 C2/9524 9F 3E 00 7E STA $7E003E,x[$7E:FC3E] A:2400 X:FC00 Y:0202 C2/9528 AD 50 30 LDA $3050 [$00:3050] A:2400 X:FC00 Y:0202 C2/952B 89 02 00 BIT #$0002 A:0000 X:FC00 Y:0202 C2/952E D0 05 BNE $05 [$9535] A:0000 X:FC00 Y:0202 C2/9530 A9 28 00 LDA #$0028 A:0000 X:FC00 Y:0202 C2/9533 80 03 BRA $03 [$9538] A:0028 X:FC00 Y:0202 C2/9538 EB XBA A:0028 X:FC00 Y:0202 C2/9539 09 C1 00 ORA #$00C1 A:2800 X:FC00 Y:0202 C2/953C 85 E0 STA $E0 [$00:00E0] A:28C1 X:FC00 Y:0202 C2/953E A5 E2 LDA $E2 [$00:00E2] A:28C1 X:FC00 Y:0202 C2/9540 29 FF 00 AND #$00FF A:0101 X:FC00 Y:0202 C2/9543 20 C3 95 JSR $95C3 [$C2:95C3] A:0001 X:FC00 Y:0202 C2/95C3 85 C8 STA $C8 [$00:00C8] A:0001 X:FC00 Y:0202 C2/95C5 A2 00 00 LDX #$0000 A:0001 X:FC00 Y:0202 C2/95C8 9B TXY A:0001 X:0000 Y:0202 C2/95C9 BF 2D 01 C2 LDA $C2012D,x[$C2:012D] A:0001 X:0000 Y:0000 C2/95CD C5 C0 CMP $C0 [$00:00C0] A:FC00 X:0000 Y:0000 C2/95CF F0 26 BEQ $26 [$95F7] A:FC00 X:0000 Y:0000 C2/95F7 A5 CC LDA $CC [$00:00CC] A:FC00 X:0000 Y:0000 C2/95F9 18 CLC A:0008 X:0000 Y:0000 C2/95FA 69 02 00 ADC #$0002 A:0008 X:0000 Y:0000 C2/95FD 85 CC STA $CC [$00:00CC] A:000A X:0000 Y:0000 C2/95FF 60 RTS A:000A X:0000 Y:0000 C2/9546 09 20 00 ORA #$0020 A:000A X:0000 Y:0000 C2/9549 85 EC STA $EC [$00:00EC] A:002A X:0000 Y:0000 C2/954B A9 00 00 LDA #$0000 A:002A X:0000 Y:0000 C2/954E 85 E4 STA $E4 [$00:00E4] A:0000 X:0000 Y:0000 C2/9550 A6 C0 LDX $C0 [$00:00C0] A:0000 X:0000 Y:0000 C2/9552 BF 3B 00 7E LDA $7E003B,x[$7E:FC3B] A:0000 X:FC00 Y:0000 C2/9556 29 FF 00 AND #$00FF A:78B0 X:FC00 Y:0000 C2/9559 85 E6 STA $E6 [$00:00E6] A:00B0 X:FC00 Y:0000 C2/955B BF 3C 00 7E LDA $7E003C,x[$7E:FC3C] A:00B0 X:FC00 Y:0000 C2/955F 29 FF 00 AND #$00FF A:0078 X:FC00 Y:0000 C2/9562 85 E8 STA $E8 [$00:00E8] A:0078 X:FC00 Y:0000 C2/9564 BF 3D 00 7E LDA $7E003D,x[$7E:FC3D] A:0078 X:FC00 Y:0000 C2/9568 29 FF 00 AND #$00FF A:0000 X:FC00 Y:0000 C2/956B 49 FF FF EOR #$FFFF A:0000 X:FC00 Y:0000 C2/956E 1A INC A A:FFFF X:FC00 Y:0000 C2/956F 85 EA STA $EA [$00:00EA] A:0000 X:FC00 Y:0000 C2/9571 A5 CE LDA $CE [$00:00CE] A:0000 X:FC00 Y:0000 C2/9573 85 EE STA $EE [$00:00EE] A:7000 X:FC00 Y:0000 C2/9575 20 F2 70 JSR $70F2 [$C2:70F2] A:7000 X:FC00 Y:0000 C2/9578 BF 19 00 40 LDA $400019,x[$40:4019] A:0000 X:4000 Y:0008 C2/957C 29 FF 00 AND #$00FF A:0008 X:4000 Y:0008 C2/957F EB XBA A:0008 X:4000 Y:0008 C2/9580 4A LSR A A:0800 X:4000 Y:0008 C2/9581 4A LSR A A:0400 X:4000 Y:0008 C2/9582 18 CLC A:0200 X:4000 Y:0008 C2/9583 65 CE ADC $CE [$00:00CE] A:0200 X:4000 Y:0008 C2/9585 85 CE STA $CE [$00:00CE] A:7200 X:4000 Y:0008 C2/9587 8A TXA A:7200 X:4000 Y:0008 C2/9588 A6 C2 LDX $C2 [$00:00C2] A:4000 X:4000 Y:0008 C2/958A 9F 0E 00 40 STA $40000E,x[$40:240E] A:4000 X:2400 Y:0008 C2/958E A5 E6 LDA $E6 [$00:00E6] A:4000 X:2400 Y:0008 C2/9590 9F 32 00 40 STA $400032,x[$40:2432] A:00B0 X:2400 Y:0008 C2/9594 A5 E8 LDA $E8 [$00:00E8] A:00B0 X:2400 Y:0008 C2/9596 9F 36 00 40 STA $400036,x[$40:2436] A:0078 X:2400 Y:0008 C2/959A A5 EA LDA $EA [$00:00EA] A:0078 X:2400 Y:0008 C2/959C 9F 3A 00 40 STA $40003A,x[$40:243A] A:0000 X:2400 Y:0008 C2/95A0 A9 00 00 LDA #$0000 A:0000 X:2400 Y:0008 C2/95A3 9F 30 00 40 STA $400030,x[$40:2430] A:0000 X:2400 Y:0008 C2/95A7 9F 34 00 40 STA $400034,x[$40:2434] A:0000 X:2400 Y:0008 C2/95AB 9F 38 00 40 STA $400038,x[$40:2438] A:0000 X:2400 Y:0008 C2/95AF A9 00 80 LDA #$8000 A:0000 X:2400 Y:0008 C2/95B2 9F 40 00 40 STA $400040,x[$40:2440] A:8000 X:2400 Y:0008 C2/95B6 9F 42 00 40 STA $400042,x[$40:2442] A:8000 X:2400 Y:0008 C2/95BA 9F 44 00 40 STA $400044,x[$40:2444] A:8000 X:2400 Y:0008 C2/95BE A6 C0 LDX $C0 [$00:00C0] A:8000 X:2400 Y:0008 C2/95C0 E2 20 SEP #$20 A:8000 X:FC00 Y:0008 C2/95C2 60 RTS A:8000 X:FC00 Y:0008 ================================================================= animation loader C2/9600 A9 00 00 LDA #$0000 A:0000 X:004E Y:0008 C2/9603 85 CC STA $CC [$00:00CC] A:0000 X:004E Y:0008 C2/9605 A9 00 68 LDA #$6800 A:0000 X:004E Y:0008 C2/9608 85 CE STA $CE [$00:00CE] A:6800 X:004E Y:0008 C2/960A A2 00 00 LDX #$0000 A:6800 X:004E Y:0008 C2/960D 9B TXY A:6800 X:0000 Y:0008 C2/960E BF 27 01 C2 LDA $C20127,x[$C2:0127] A:6800 X:0000 Y:0000 C2/9612 AA TAX A:FA80 X:0000 Y:0000 C2/9613 A9 80 FF LDA #$FF80 A:FA80 X:FA80 Y:0000 C2/9616 9F 00 00 7E STA $7E0000,x[$7E:FA80] A:FF80 X:FA80 Y:0000 C2/961A BB TYX A:FF80 X:FA80 Y:0000 C2/961B E8 INX A:FF80 X:0000 Y:0000 C2/961C E8 INX A:FF80 X:0001 Y:0000 C2/961D E0 05 00 CPX #$0005 A:FF80 X:0002 Y:0000 C2/9620 30 EB BMI $EB [$960D] A:FF80 X:0002 Y:0000 C2/960D 9B TXY A:FF80 X:0002 Y:0000 C2/960E BF 27 01 C2 LDA $C20127,x[$C2:0129] A:FF80 X:0002 Y:0002 C2/9612 AA TAX A:FB00 X:0002 Y:0002 C2/9613 A9 80 FF LDA #$FF80 A:FB00 X:FB00 Y:0002 C2/9616 9F 00 00 7E STA $7E0000,x[$7E:FB00] A:FF80 X:FB00 Y:0002 C2/961A BB TYX A:FF80 X:FB00 Y:0002 C2/961B E8 INX A:FF80 X:0002 Y:0002 C2/961C E8 INX A:FF80 X:0003 Y:0002 C2/961D E0 05 00 CPX #$0005 A:FF80 X:0004 Y:0002 C2/9620 30 EB BMI $EB [$960D] A:FF80 X:0004 Y:0002 C2/9622 AD 32 30 LDA $3032 [$00:3032] A:FF80 X:0006 Y:0004 C2/9625 29 FF 00 AND #$00FF A:0001 X:0006 Y:0004 C2/9628 C9 04 00 CMP #$0004 A:0001 X:0006 Y:0004 C2/962B 30 03 BMI $03 [$9630] A:0001 X:0006 Y:0004 C2/9630 3A DEC A A:0001 X:0006 Y:0004 C2/9631 85 B2 STA $B2 [$00:00B2] A:0000 X:0006 Y:0004 C2/9633 0A ASL A A:0000 X:0006 Y:0004 C2/9634 0A ASL A A:0000 X:0006 Y:0004 C2/9635 0A ASL A A:0000 X:0006 Y:0004 C2/9636 85 BC STA $BC [$00:00BC] A:0000 X:0006 Y:0004 C2/9638 A9 00 F8 LDA #$F800 A:0000 X:0006 Y:0004 C2/963B 85 B4 STA $B4 [$00:00B4] A:F800 X:0006 Y:0004 C2/963D A9 7F 00 LDA #$007F A:F800 X:0006 Y:0004 C2/9640 85 B6 STA $B6 [$00:00B6] A:007F X:0006 Y:0004 C2/9642 A9 FE FF LDA #$FFFE A:007F X:0006 Y:0004 C2/9645 85 BE STA $BE [$00:00BE] A:FFFE X:0006 Y:0004 C2/9647 A4 B2 LDY $B2 [$00:00B2] A:FFFE X:0006 Y:0004 C2/9649 B9 33 30 LDA $3033,y[$00:3033] A:FFFE X:0006 Y:0000 C2/964C 29 FF 00 AND #$00FF A:0000 X:0006 Y:0000 C2/964F AA TAX A:0000 X:0006 Y:0000 C2/9650 86 BA STX $BA [$00:00BA] A:0000 X:0000 Y:0000 C2/9652 BF 25 02 C2 LDA $C20225,x[$C2:0227] A:0002 X:0002 Y:0002;load character sprite indexes Character sprite indexes 02 ;Mario 08 ;Toadstool 0E ;Bowser 1A ;Geno 14 ;Mallow 21 ;6th Party member C2/9656 29 FF 00 AND #$00FF A:1A0E X:0002 Y:0002 C2/9659 85 B8 STA $B8 [$00:00B8] A:000E X:0002 Y:0002 C2/965B A6 BE LDX $BE [$00:00BE] A:000E X:0002 Y:0002 C2/965D E8 INX A:000E X:FFFE Y:0002 C2/965E E8 INX A:000E X:FFFF Y:0002 C2/965F 86 BE STX $BE [$00:00BE] A:000E X:0000 Y:0002 C2/9661 BF 27 01 C2 LDA $C20127,x[$C2:0127] A:000E X:0000 Y:0002 ;load character slot C2/9665 AA TAX A:FA80 X:0000 Y:0002 C2/9666 A9 00 00 LDA #$0000 A:FA80 X:FA80 Y:0002 C2/9669 9F 00 00 7E STA $7E0000,x[$7E:FA80] A:0000 X:FA80 Y:0002 C2/966D BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:0000 X:FA80 Y:0002 C2/9671 29 00 FF AND #$FF00 A:0000 X:FA80 Y:0002 C2/9674 05 BA ORA $BA [$00:00BA] A:0000 X:FA80 Y:0002 C2/9676 9F 01 00 7E STA $7E0001,x[$7E:FA81] A:0002 X:FA80 Y:0002 C2/967A BF 2D 00 7E LDA $7E002D,x[$7E:FAAD] A:0002 X:FA80 Y:0002 ;loads byte of character in battle C2/967E 29 00 FF AND #$FF00 A:210E X:FA80 Y:0002 C2/9681 05 B8 ORA $B8 [$00:00B8] A:2100 X:FA80 Y:0002 C2/9683 9F 2D 00 7E STA $7E002D,x[$7E:FAAD] A:210E X:FA80 Y:0002 ;sets character sprite in battle 02 ;Mario 08 ;Toadstool 0E ;Bowser 1A ;Geno 14 ;Mallow 21 ;6th Party member C2/9687 9B TXY A:FF02 X:FA80 Y:0000 C2/9688 A5 B2 LDA $B2 [$00:00B2] A:FF02 X:FA80 Y:FA80 C2/968A 0A ASL A A:0000 X:FA80 Y:FA80 C2/968B 18 CLC A:0000 X:FA80 Y:FA80 C2/968C 65 BC ADC $BC [$00:00BC] A:0000 X:FA80 Y:FA80 C2/968E AA TAX A:0000 X:FA80 Y:FA80 C2/968F BF AD 96 C2 LDA $C296AD,x[$C2:96AD] A:0000 X:0000 Y:FA80 ;Load coordinates for where the character stands in battle ...table from 96AD... ...Depending on how many are in the party... One 57 AF | 00 00 | 00 00 | 00 00 Two 40 A3 | 70 BB | 00 00 | 00 00 Three 37 9F | 57 AF | 77 BF | 00 00 C2/9693 BB TYX A:BF57 X:0000 Y:FA80 C2/9694 9F 3B 00 7E STA $7E003B,x[$7E:FABB] A:BF57 X:FA80 Y:FA80 ;Store character coordinates to character C2/9698 20 C5 96 JSR $96C5 [$C2:96C5] A:BF57 X:FA80 Y:FA80 ;ALLY: stats loader C2/969B 22 1B A0 C2 JSL $C2A01B[$C2:A01B] A:1808 X:FA80 Y:1313 ;load statuses before battle C2/969F 20 58 97 JSR $9758 [$C2:9758] A:00FF X:FA80 Y:0010 C2/96A2 20 38 98 JSR $9838 [$C2:9838] A:8000 X:FA80 Y:0008 C2/96A5 A5 B2 LDA $B2 [$00:00B2] A:0000 X:0002 Y:0008 C2/96A7 3A DEC A A:0002 X:0002 Y:0008 C2/96A8 85 B2 STA $B2 [$00:00B2] A:0001 X:0002 Y:0008 C2/96AA 10 9B BPL $9B [$9647] A:0001 X:0002 Y:0008 ... ALLY: stats loader C2/96C5 86 C0 STX $C0 [$00:00C0] A:AF57 X:FA80 Y:FA80 C2/96C7 A5 BA LDA $BA [$00:00BA] A:AF57 X:FA80 Y:FA80 C2/96C9 AA TAX A:0000 X:FA80 Y:FA80 C2/96CA BF 4C 97 C2 LDA $C2974C,x[$C2:974C] A:0000 X:0000 Y:FA80 C2/96CE 29 FF 00 AND #$00FF A:1400 X:0000 Y:FA80 C2/96D1 85 C2 STA $C2 [$00:00C2] A:0000 X:0000 Y:FA80 C2/96D3 AD 00 07 LDA $0700 [$00:0700] A:0000 X:0000 Y:FA80 C2/96D6 89 20 00 BIT #$0020 A:0000 X:0000 Y:FA80 C2/96D9 D0 0A BNE $0A [$96E5] A:0000 X:0000 Y:FA80 C2/96DB AD 64 0B LDA $0B64 [$00:0B64] A:0000 X:0000 Y:FA80 C2/96DE D0 05 BNE $05 [$96E5] A:0000 X:0000 Y:FA80 C2/96E0 A9 00 F8 LDA #$F800 A:0000 X:0000 Y:FA80 C2/96E3 80 04 BRA $04 [$96E9] A:F800 X:0000 Y:FA80 AF 28 00 FA ;??? C2/96E9 18 CLC A:F800 X:0000 Y:FA80 C2/96EA 65 C2 ADC $C2 [$00:00C2] A:F800 X:0000 Y:FA80 C2/96EC 85 C2 STA $C2 [$00:00C2] A:F800 X:0000 Y:FA80 C2/96EE A5 C0 LDA $C0 [$00:00C0] A:F800 X:0000 Y:FA80 C2/96F0 18 CLC A:FA80 X:0000 Y:FA80 C2/96F1 69 10 00 ADC #$0010 A:FA80 X:0000 Y:FA80 C2/96F4 A8 TAY A:FA90 X:0000 Y:FA80 C2/96F5 A6 C2 LDX $C2 [$00:00C2] A:FA90 X:0000 Y:FA90 C2/96F7 8B PHB A:FA90 X:F800 Y:FA90 C2/96F8 AD 00 07 LDA $0700 [$00:0700] A:FA90 X:F800 Y:FA90 C2/96FB 89 20 00 BIT #$0020 A:0000 X:F800 Y:FA90 C2/96FE D0 0D BNE $0D [$970D] A:0000 X:F800 Y:FA90 C2/9700 AD 64 0B LDA $0B64 [$00:0B64] A:0000 X:F800 Y:FA90 C2/9703 D0 08 BNE $08 [$970D] A:0000 X:F800 Y:FA90 C2/9705 A9 13 00 LDA #$0013 A:0000 X:F800 Y:FA90 $C2/9708 54 7E 7F MVN 7F 7E A:0013 X:F800 Y:FA90 $C2/9708 54 7E 7F MVN 7F 7E A:0012 X:F801 Y:FA91 $C2/9708 54 7E 7F MVN 7F 7E A:0011 X:F802 Y:FA92 $C2/9708 54 7E 7F MVN 7F 7E A:0010 X:F803 Y:FA93 $C2/9708 54 7E 7F MVN 7F 7E A:000F X:F804 Y:FA94 $C2/9708 54 7E 7F MVN 7F 7E A:000E X:F805 Y:FA95 $C2/9708 54 7E 7F MVN 7F 7E A:000D X:F806 Y:FA96 $C2/9708 54 7E 7F MVN 7F 7E A:000C X:F807 Y:FA97 $C2/9708 54 7E 7F MVN 7F 7E A:000B X:F808 Y:FA98 $C2/9708 54 7E 7F MVN 7F 7E A:000A X:F809 Y:FA99 $C2/9708 54 7E 7F MVN 7F 7E A:0009 X:F80A Y:FA9A $C2/9708 54 7E 7F MVN 7F 7E A:0008 X:F80B Y:FA9B $C2/9708 54 7E 7F MVN 7F 7E A:0007 X:F80C Y:FA9C $C2/9708 54 7E 7F MVN 7F 7E A:0006 X:F80D Y:FA9D $C2/9708 54 7E 7F MVN 7F 7E A:0005 X:F80E Y:FA9E $C2/9708 54 7E 7F MVN 7F 7E A:0004 X:F80F Y:FA9F $C2/9708 54 7E 7F MVN 7F 7E A:0003 X:F810 Y:FAA0 $C2/9708 54 7E 7F MVN 7F 7E A:0002 X:F811 Y:FAA1 $C2/9708 54 7E 7F MVN 7F 7E A:0001 X:F812 Y:FAA2 $C2/9708 54 7E 7F MVN 7F 7E A:0000 X:F813 Y:FAA3 $C2/970B 80 06 BRA $06 [$9713] A:FFFF X:F814 Y:FAA4 C2/9713 AB PLB A:FFFF X:F814 Y:FAA4 $C2/9714 A6 C0 LDX $C0 [$00:00C0] A:FFFF X:F814 Y:FAA4 $C2/9716 A9 00 00 LDA #$0000 A:FFFF X:FA80 Y:FAA4 $C2/9719 9F 3D 00 7E STA $7E003D,x[$7E:FABD] A:0000 X:FA80 Y:FAA4 $C2/971D A9 FF FF LDA #$FFFF A:0000 X:FA80 Y:FAA4 $C2/9720 9F 3E 00 7E STA $7E003E,x[$7E:FABE] A:FFFF X:FA80 Y:FAA4 $C2/9724 A9 52 97 LDA #$9752 A:FFFF X:FA80 Y:FAA4 $C2/9727 85 C2 STA $C2 [$00:00C2] A:9752 X:FA80 Y:FAA4 $C2/9729 A9 C2 00 LDA #$00C2 A:9752 X:FA80 Y:FAA4 $C2/972C 85 C4 STA $C4 [$00:00C4] A:00C2 X:FA80 Y:FAA4 $C2/972E A5 BA LDA $BA [$00:00BA] A:00C2 X:FA80 Y:FAA4 $C2/9730 29 FF 00 AND #$00FF A:0000 X:FA80 Y:FAA4 $C2/9733 A8 TAY A:0000 X:FA80 Y:FAA4 $C2/9734 B7 C2 LDA [$C2],y[$C2:9752] A:0000 X:FA80 Y:0000 ;Load cursor coordinates for Ally characters 13 ;Mario 13 ;Toadstool 24 ;Bowser 13 ;Geno 12 ;Mallow 13 ;6th Party member $C2/9736 A8 TAY A:1313 X:FA80 Y:0000 $C2/9737 29 F0 00 AND #$00F0 A:1313 X:FA80 Y:1313 $C2/973A 4A LSR A A:0010 X:FA80 Y:1313 C2/973B 85 C2 STA $C2 [$00:00C2] A:0008 X:FA80 Y:1313 $C2/973D 98 TYA A:0008 X:FA80 Y:1313 $C2/973E 29 0F 00 AND #$000F A:1313 X:FA80 Y:1313 $C2/9741 0A ASL A A:0003 X:FA80 Y:1313 $C2/9742 0A ASL A A:0006 X:FA80 Y:1313 $C2/9743 0A ASL A A:000C X:FA80 Y:1313 $C2/9744 EB XBA A:0018 X:FA80 Y:1313 $C2/9745 05 C2 ORA $C2 [$00:00C2] A:1800 X:FA80 Y:1313 $C2/9747 9F 37 00 7E STA $7E0037,x[$7E:FAB7] A:1808 X:FA80 Y:1313 $C2/974B 60 RTS A:1808 X:FA80 Y:1313 ================================================================= ALLY: Load 'Target position' (this example uses Bowser) C2/972C 85 C4 STA $C4 [$00:00C4] A:00C2 X:FA80 Y:FAA4 C2/972E A5 BA LDA $BA [$00:00BA] A:00C2 X:FA80 Y:FAA4 C2/9730 29 FF 00 AND #$00FF A:0002 X:FA80 Y:FAA4 C2/9733 A8 TAY A:0002 X:FA80 Y:FAA4 C2/9734 B7 C2 LDA [$C2],y[$C2:9754] A:0002 X:FA80 Y:0002 C2/9736 A8 TAY A:1324 X:FA80 Y:0002 C2/9737 29 F0 00 AND #$00F0 A:1324 X:FA80 Y:1324 C2/973A 4A LSR A A:0020 X:FA80 Y:1324 C2/973B 85 C2 STA $C2 [$00:00C2] A:0010 X:FA80 Y:1324 C2/973D 98 TYA A:0010 X:FA80 Y:1324 C2/973E 29 0F 00 AND #$000F A:1324 X:FA80 Y:1324 C2/9741 0A ASL A A:0004 X:FA80 Y:1324 C2/9742 0A ASL A A:0008 X:FA80 Y:1324 C2/9743 0A ASL A A:0010 X:FA80 Y:1324 C2/9744 EB XBA A:0020 X:FA80 Y:1324 C2/9745 05 C2 ORA $C2 [$00:00C2] A:2000 X:FA80 Y:1324 C2/9747 9F 37 00 7E STA $7E0037,x[$7E:FAB7] A:2010 X:FA80 Y:1324 C2/974B 60 RTS A:2010 X:FA80 Y:1324 ================================================================= loads before battle C2/9758 86 C0 STX $C0 [$00:00C0] A:00FF X:FA80 Y:0010 C2/975A A9 C0 00 LDA #$00C0 A:00FF X:FA80 Y:0010 C2/975D 85 E0 STA $E0 [$00:00E0] A:00C0 X:FA80 Y:0010 C2/975F BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:00C0 X:FA80 Y:0010 C2/9763 29 FF 00 AND #$00FF A:FF00 X:FA80 Y:0010 C2/9766 85 E2 STA $E2 [$00:00E2] A:0000 X:FA80 Y:0010 C2/9768 A9 00 00 LDA #$0000 A:0000 X:FA80 Y:0010 C2/976B 85 E4 STA $E4 [$00:00E4] A:0000 X:FA80 Y:0010 C2/976D AF 00 00 F5 LDA $F50000[$F5:0000] A:0000 X:FA80 Y:0010 C2/9771 85 EA STA $EA [$00:00EA] A:0002 X:FA80 Y:0010 C2/9773 A9 F5 00 LDA #$00F5 A:0002 X:FA80 Y:0010 C2/9776 85 EC STA $EC [$00:00EC] A:00F5 X:FA80 Y:0010 C2/9778 20 19 07 JSR $0719 [$C2:0719] A:00F5 X:FA80 Y:0010 C2/977B 86 C2 STX $C2 [$00:00C2] A:0000 X:2480 Y:0000 $C2/977D A5 C0 LDA $C0 [$00:00C0] A:0000 X:2480 Y:0000 $C2/977F 9F 0A 00 40 STA $40000A,x[$40:248A] A:FA80 X:2480 Y:0000 $C2/9783 8A TXA A:FA80 X:2480 Y:0000 $C2/9784 A6 C0 LDX $C0 [$00:00C0] A:2480 X:2480 Y:0000 $C2/9786 9F 3E 00 7E STA $7E003E,x[$7E:FABE] A:2480 X:FA80 Y:0000 $C2/978A AD 50 30 LDA $3050 [$00:3050] A:2480 X:FA80 Y:0000 $C2/978D 89 02 00 BIT #$0002 A:0000 X:FA80 Y:0000 $C2/9790 D0 05 BNE $05 [$9797] A:0000 X:FA80 Y:0000 $C2/9792 A9 30 00 LDA #$0030 A:0000 X:FA80 Y:0000 $C2/9795 80 03 BRA $03 [$979A] A:0030 X:FA80 Y:0000 $C2/979A EB XBA A:0030 X:FA80 Y:0000 $C2/979B 09 C1 00 ORA #$00C1 A:3000 X:FA80 Y:0000 C2/979E 85 E0 STA $E0 [$00:00E0] A:30C1 X:FA80 Y:0000 $C2/97A0 BF 2D 00 7E LDA $7E002D,x[$7E:FAAD] A:30C1 X:FA80 Y:0000 ;loads character sprite index $C2/97A4 29 FF 00 AND #$00FF A:0002 X:FA80 Y:0000 $C2/97A7 85 E2 STA $E2 [$00:00E2] A:0002 X:FA80 Y:0000 ;saves it to idle animation $C2/97A9 A9 00 00 LDA #$0000 A:0002 X:FA80 Y:0000 $C2/97AC 85 E4 STA $E4 [$00:00E4] A:0000 X:FA80 Y:0000 $C2/97AE A6 C0 LDX $C0 [$00:00C0] A:0000 X:FA80 Y:0000 $C2/97B0 BF 3B 00 7E LDA $7E003B,x[$7E:FABB] A:0000 X:FA80 Y:0000 $C2/97B4 29 FF 00 AND #$00FF A:AF57 X:FA80 Y:0000 $C2/97B7 85 E6 STA $E6 [$00:00E6] A:0057 X:FA80 Y:0000 $C2/97B9 BF 3C 00 7E LDA $7E003C,x[$7E:FABC] A:0057 X:FA80 Y:0000 $C2/97BD 29 FF 00 AND #$00FF A:00AF X:FA80 Y:0000 $C2/97C0 85 E8 STA $E8 [$00:00E8] A:00AF X:FA80 Y:0000 C2/97C2 BF 3D 00 7E LDA $7E003D,x[$7E:FABD] A:00AF X:FA80 Y:0000 $C2/97C6 29 FF 00 AND #$00FF A:8000 X:FA80 Y:0000 $C2/97C9 49 FF FF EOR #$FFFF A:0000 X:FA80 Y:0000 $C2/97CC 1A INC A A:FFFF X:FA80 Y:0000 $C2/97CD 85 EA STA $EA [$00:00EA] A:0000 X:FA80 Y:0000 C2/97CF A5 CC LDA $CC [$00:00CC] A:0000 X:FA80 Y:0000 $C2/97D1 18 CLC A:0000 X:FA80 Y:0000 $C2/97D2 69 02 00 ADC #$0002 A:0000 X:FA80 Y:0000 $C2/97D5 85 CC STA $CC [$00:00CC] A:0002 X:FA80 Y:0000 $C2/97D7 09 20 00 ORA #$0020 A:0002 X:FA80 Y:0000 $C2/97DA 85 EC STA $EC [$00:00EC] A:0022 X:FA80 Y:0000 $C2/97DC A5 CE LDA $CE [$00:00CE] A:0022 X:FA80 Y:0000 $C2/97DE 85 EE STA $EE [$00:00EE] A:6800 X:FA80 Y:0000 $C2/97E0 20 F2 70 JSR $70F2 [$C2:70F2] A:6800 X:FA80 Y:0000 C2/97E3 A5 E2 LDA $E2 [$00:00E2] A:0000 X:4040 Y:0008 $C2/97E5 C9 0E 00 CMP #$000E A:0002 X:4040 Y:0008 $C2/97E8 D0 05 BNE $05 [$97EF] A:0002 X:4040 Y:0008 $C2/97EF BF 19 00 40 LDA $400019,x[$40:4059] A:0002 X:4040 Y:0008 $C2/97F3 29 FF 00 AND #$00FF A:0008 X:4040 Y:0008 $C2/97F6 EB XBA A:0008 X:4040 Y:0008 $C2/97F7 4A LSR A A:0800 X:4040 Y:0008 $C2/97F8 4A LSR A A:0400 X:4040 Y:0008 $C2/97F9 18 CLC A:0200 X:4040 Y:0008 $C2/97FA 65 CE ADC $CE [$00:00CE] A:0200 X:4040 Y:0008 $C2/97FC 85 CE STA $CE [$00:00CE] A:6A00 X:4040 Y:0008 $C2/97FE 8A TXA A:6A00 X:4040 Y:0008 $C2/97FF A6 C2 LDX $C2 [$00:00C2] A:4040 X:4040 Y:0008 $C2/9801 9F 0E 00 40 STA $40000E,x[$40:248E] A:4040 X:2480 Y:0008 $C2/9805 A5 E6 LDA $E6 [$00:00E6] A:4040 X:2480 Y:0008 $C2/9807 9F 32 00 40 STA $400032,x[$40:24B2] A:0057 X:2480 Y:0008 $C2/980B A5 E8 LDA $E8 [$00:00E8] A:0057 X:2480 Y:0008 $C2/980D 9F 36 00 40 STA $400036,x[$40:24B6] A:00AF X:2480 Y:0008 $C2/9811 A5 EA LDA $EA [$00:00EA] A:00AF X:2480 Y:0008 $C2/9813 9F 3A 00 40 STA $40003A,x[$40:24BA] A:0000 X:2480 Y:0008 $C2/9817 A9 00 00 LDA #$0000 A:0000 X:2480 Y:0008 $C2/981A 9F 30 00 40 STA $400030,x[$40:24B0] A:0000 X:2480 Y:0008 $C2/981E 9F 34 00 40 STA $400034,x[$40:24B4] A:0000 X:2480 Y:0008 $C2/9822 9F 38 00 40 STA $400038,x[$40:24B8] A:0000 X:2480 Y:0008 $C2/9826 A9 00 80 LDA #$8000 A:0000 X:2480 Y:0008 $C2/9829 9F 40 00 40 STA $400040,x[$40:24C0] A:8000 X:2480 Y:0008 $C2/982D 9F 42 00 40 STA $400042,x[$40:24C2] A:8000 X:2480 Y:0008 $C2/9831 9F 44 00 40 STA $400044,x[$40:24C4] A:8000 X:2480 Y:0008 $C2/9835 A6 C0 LDX $C0 [$00:00C0] A:8000 X:2480 Y:0008 $C2/9837 60 RTS A:8000 X:FA80 Y:0008 ...from C2/96A2 JSR... C2/9838 08 PHP A:8000 X:FA80 Y:0008 C2/9839 C2 30 REP #$30 A:8000 X:FA80 Y:0008 C2/983B A2 00 00 LDX #$0000 A:8000 X:FA80 Y:0008 C2/983E BF 00 3D 40 LDA $403D00,x[$40:3D00] A:8000 X:0000 Y:0008 C2/9842 F0 04 BEQ $04 [$9848] A:FC00 X:0000 Y:0008 C2/9844 E8 INX A:FC00 X:0000 Y:0008 C2/9845 E8 INX A:FC00 X:0001 Y:0008 C2/9846 80 F6 BRA $F6 [$983E] A:FC00 X:0002 Y:0008 C2/983E BF 00 3D 40 LDA $403D00,x[$40:3D02] A:FC00 X:0002 Y:0008 C2/9842 F0 04 BEQ $04 [$9848] A:0000 X:0002 Y:0008 C2/9848 A5 C0 LDA $C0 [$00:00C0] A:0000 X:0002 Y:0008 C2/984A 9F 00 3D 40 STA $403D00,x[$40:3D02] A:FA80 X:0002 Y:0008 C2/984E A9 00 00 LDA #$0000 A:FA80 X:0002 Y:0008 C2/9851 9F 02 3D 40 STA $403D02,x[$40:3D04] A:0000 X:0002 Y:0008 C2/9855 28 PLP A:0000 X:0002 Y:0008 C2/9856 60 RTS A:0000 X:0002 Y:0008 ??? C2/96A2 20 38 98 JSR $9838 [$C2:9838] A:8000 X:FA80 Y:0008 C2/96A5 A5 B2 LDA $B2 [$00:00B2] A:0000 X:0002 Y:0008 C2/96A7 3A DEC A A:0000 X:0002 Y:0008 C2/96A8 85 B2 STA $B2 [$00:00B2] A:FFFF X:0002 Y:0008 C2/96AA 10 9B BPL $9B [$9647] A:FFFF X:0002 Y:0008 C2/96AC 60 RTS A:FFFF X:0002 Y:0008 ??? $C2/9838 08 PHP A:8000 X:FA80 Y:0008 $C2/9839 C2 30 REP #$30 A:8000 X:FA80 Y:0008 $C2/983B A2 00 00 LDX #$0000 A:8000 X:FA80 Y:0008 $C2/983E BF 00 3D 40 LDA $403D00,x[$40:3D00] A:8000 X:0000 Y:0008 $C2/9842 F0 04 BEQ $04 [$9848] A:FC00 X:0000 Y:0008 $C2/9844 E8 INX A:FC00 X:0000 Y:0008 $C2/9845 E8 INX A:FC00 X:0001 Y:0008 $C2/9846 80 F6 BRA $F6 [$983E] A:FC00 X:0002 Y:0008 $C2/983E BF 00 3D 40 LDA $403D00,x[$40:3D02] A:FC00 X:0002 Y:0008 $C2/9842 F0 04 BEQ $04 [$9848] A:0000 X:0002 Y:0008 $C2/9848 A5 C0 LDA $C0 [$00:00C0] A:0000 X:0002 Y:0008 $C2/984A 9F 00 3D 40 STA $403D00,x[$40:3D02] A:FA80 X:0002 Y:0008 $C2/984E A9 00 00 LDA #$0000 A:FA80 X:0002 Y:0008 $C2/9851 9F 02 3D 40 STA $403D02,x[$40:3D04] A:0000 X:0002 Y:0008 $C2/9855 28 PLP A:0000 X:0002 Y:0008 $C2/9856 60 RTS A:0000 X:0002 Y:0008 ================================================================= Speed Calculation (Turn order) C2/98B2 A2 00 00 LDX #$0000 A:0000 X:0002 Y:0008 C2/98B5 86 E0 STX $E0 [$00:00E0] A:0000 X:0000 Y:0008 C2/98B7 BF 00 3D 40 LDA $403D00,x[$40:3D00] A:0000 X:0000 Y:0008 C2/98BB F0 3B BEQ $3B [$98F8] A:FC00 X:0000 Y:0008 C2/98BD 85 E2 STA $E2 [$00:00E2] A:FC00 X:0000 Y:0008 C2/98BF E8 INX A:FC00 X:0000 Y:0008 C2/98C0 E8 INX A:FC00 X:0001 Y:0008 C2/98C1 86 E8 STX $E8 [$00:00E8] A:FC00 X:0002 Y:0008 C2/98C3 BF 00 3D 40 LDA $403D00,x[$40:3D02] A:FC00 X:0002 Y:0008 C2/98C7 F0 29 BEQ $29 [$98F2] A:FA80 X:0002 Y:0008 C2/98C9 85 EA STA $EA [$00:00EA] A:FA80 X:0002 Y:0008 C2/98CB AA TAX A:FA80 X:0002 Y:0008 C2/98CC BF 70 00 7E LDA $7E0070,x[$7E:FAF0] A:FA80 X:FA80 Y:0008 C2/98D0 A6 E2 LDX $E2 [$00:00E2] A:001E X:FA80 Y:0008 C2/98D2 DF 70 00 7E CMP $7E0070,x[$7E:FC70] A:001E X:FC00 Y:0008 C2/98D6 F0 14 BEQ $14 [$98EC] A:001E X:FC00 Y:0008 C2/98D8 30 12 BMI $12 [$98EC] A:001E X:FC00 Y:0008 C2/98DA A6 E8 LDX $E8 [$00:00E8] A:001E X:FC00 Y:0008 C2/98DC A5 E2 LDA $E2 [$00:00E2] A:001E X:0002 Y:0008 C2/98DE 9F 00 3D 40 STA $403D00,x[$40:3D02] A:FC00 X:0002 Y:0008 C2/98E2 A6 E0 LDX $E0 [$00:00E0] A:FC00 X:0002 Y:0008 C2/98E4 A5 EA LDA $EA [$00:00EA] A:FC00 X:0000 Y:0008 C2/98E6 9F 00 3D 40 STA $403D00,x[$40:3D00] A:FA80 X:0000 Y:0008 C2/98EA 85 E2 STA $E2 [$00:00E2] A:FA80 X:0000 Y:0008 C2/98EC A6 E8 LDX $E8 [$00:00E8] A:FA80 X:0000 Y:0008 C2/98EE E8 INX A:FA80 X:0002 Y:0008 C2/98EF E8 INX A:FA80 X:0003 Y:0008 C2/98F0 80 CF BRA $CF [$98C1] A:FA80 X:0004 Y:0008 C2/98F2 A6 E0 LDX $E0 [$00:00E0] A:0000 X:0006 Y:0006 C2/98F4 E8 INX A:0000 X:0004 Y:0006 C2/98F5 E8 INX A:0000 X:0005 Y:0006 C2/98F6 80 BD BRA $BD [$98B5] A:0000 X:0006 Y:0006 C2/98B5 86 E0 STX $E0 [$00:00E0] A:0000 X:0006 Y:0006 C2/98B7 BF 00 3D 40 LDA $403D00,x[$40:3D06] A:0000 X:0006 Y:0006 C2/98BB F0 3B BEQ $3B [$98F8] A:0000 X:0006 Y:0006 C2/98F8 60 RTS A:0000 X:0006 Y:0006 ================================================================= C2/9907 C2/990F A2 00 F8 ;loads the stats at the beginning of a new file ================================================================= ... C2/994A AF 29 00 FA ; ??? loads bank (total is 180 bytes) ... C2/99A3 A2 64 F8 ;load equipment inventory ... C2/99B0 AF 29 00 FA ; ??? loads bank (total is 180 bytes) ... ================================================================= Set Battle Music DISASSEMBLER NOTE: The music is chosen from a unique track list based on bits set. if following bits set... bit 0,1 can't run bit 2 boss music 1 bit 2,3 Smithy 1 bit 2,3,4 Culex bit 2,4 Booster Hill bit 3 boss music 2 bit 3,4 Barrel Volcano bit 4 minecart ride bit 5 ---- bit 6,7 current music (no change) ... C2/9EBA AF 1E FA 7E ;load byte to set Music (also, "Can't Run" bit but it's not counted here) ... C2/9F01 AF 1E FA 7E ;load byte to set Music (also, "Can't Run" bit but it's not counted here) Battle Music Track Unique List C2/9F51 ================================================================= Targetting C2/9F90 8D 00 1D STA $1D00 [$00:1D00] A:0100 X:2180 Y:0008 C2/9F93 A9 80 00 LDA #$0080 A:0100 X:2180 Y:0008 C2/9F96 8D 02 1D STA $1D02 [$00:1D02] A:0080 X:2180 Y:0008 C2/9F99 22 00 00 C4 JSL $C40000[$C4:0000] A:0080 X:2180 Y:0008 C2/9F9D 60 RTS A:0080 X:2180 Y:0008 ================================================================= processor data C2/A000 4C 3F A0 JMP $A03F [$C0:A03F] ;enter battle C2/A003 4C 54 A0 JMP $A054 [$C0:A054] ;MONSTER: Load Battle Script C2/A006 4C 69 A0 JMP $A069 [$C0:A069] ;MONSTER: Turn start C2/A009 4C 7E A0 JMP $A07E [$C0:A07E] ;turn end C2/A00C 4C 7E A0 JMP $A07E [$C0:A07E] ;turn end C2/A00F 4C 7E A0 JMP $A07E [$C0:A07E] ;turn end C2/A012 4C 93 A0 JMP $A093 [$C0:A093] ;load weapon/spell/item type and attributes C2/A015 4C B6 A0 JMP $A0B6 [$C0:A0B6] ;load turn procedure C2/A018 4C CB A0 JMP $A0CB [$C0:A0CB] ;load timing for weapons/defense/spells C2/A01B 4C E8 A0 JMP $A0E8 [$C0:A0E8] ;load statuses before battle C2/A01E 4C FD A0 JMP $A0FD [$C0:A0FD] C2/A021 4C 12 A1 JMP $A112 [$C0:A112] ;Battle End C2/A024 4C 27 A1 JMP $A127 [$C0:A127] ;randomized attack? *confuse C2/A027 4C 3C A1 JMP $A13C [$C0:A13C] C2/A02A 4C 51 A1 JMP $A151 [$C0:A151] C2/A02D 4C 67 A1 JMP $A167 [$C0:A167] C2/A030 54 E6 C2 67 F9 C2 ;??? used several times C2/A036 4C 7C A1 JMP $A17C [$C0:A17C] C2/A039 4C 9F A1 JMP $A19F [$C0:A19F] C2/A03C 4C D7 A1 JMP $A1D7 [$C0:A1D7] C2/A03F 08 PHP A:0000 X:0002 Y:0008 C2/A040 8B PHB A:0000 X:0002 Y:0008 C2/A041 0B PHD A:0000 X:0002 Y:0008 C2/A042 C2 30 REP #$30 A:0000 X:0002 Y:0008 C2/A044 A9 00 00 LDA #$0000 A:0000 X:0002 Y:0008 C2/A047 5B TCD A:0000 X:0002 Y:0008 C2/A048 48 PHA A:0000 X:0002 Y:0008 C2/A049 AB PLB A:0000 X:0002 Y:0008 C2/A04A AB PLB A:0000 X:0002 Y:0008 C2/A04B 86 54 STX $54 [$00:0054] A:0000 X:0002 Y:0008 C2/A04D 20 BD A2 JSR $A2BD [$C2:A2BD] A:0000 X:0002 Y:0008 C2/A050 2B PLD A:0000 X:0002 Y:0008 C2/A051 AB PLB A:0000 X:0002 Y:0008 C2/A052 28 PLP A:0000 X:0002 Y:0008 C2/A053 6B RTL A:0000 X:0002 Y:0008 C2/A054 08 PHP A:0000 X:FC00 Y:1312 C2/A055 8B PHB A:0000 X:FC00 Y:1312 C2/A056 0B PHD A:0000 X:FC00 Y:1312 C2/A057 C2 30 REP #$30 A:0000 X:FC00 Y:1312 C2/A059 A9 00 00 LDA #$0000 A:0000 X:FC00 Y:1312 C2/A05C 5B TCD A:0000 X:FC00 Y:1312 C2/A05D 48 PHA A:0000 X:FC00 Y:1312 C2/A05E AB PLB A:0000 X:FC00 Y:1312 C2/A05F AB PLB A:0000 X:FC00 Y:1312 C2/A060 86 54 STX $54 [$00:0054] A:0000 X:FC00 Y:1312 C2/A062 20 E4 A2 JSR $A2E4 [$C2:A2E4] A:0000 X:FC00 Y:1312 ;MONSTER BSC: load monster battle script C2/A065 2B PLD A:FFFF X:FC00 Y:000C C2/A066 AB PLB A:FFFF X:FC00 Y:000C C2/A067 28 PLP A:FFFF X:FC00 Y:000C C2/A068 6B RTL A:FFFF X:FC00 Y:000C MONSTER: Turn start C2/A069 08 PHP A:FA80 X:FC00 Y:2400 P:eNvmxdIzc C2/A06A 8B PHB A:FA80 X:FC00 Y:2400 P:eNvmxdIzc C2/A06B 0B PHD A:FA80 X:FC00 Y:2400 P:eNvmxdIzc C2/A06C C2 30 REP #$30 A:FA80 X:FC00 Y:2400 P:eNvmxdIzc C2/A06E A9 00 00 LDA #$0000 A:FA80 X:FC00 Y:2400 P:eNvmxdIzc C2/A071 5B TCD A:0000 X:FC00 Y:2400 P:envmxdIZc C2/A072 48 PHA A:0000 X:FC00 Y:2400 P:envmxdIZc C2/A073 AB PLB A:0000 X:FC00 Y:2400 P:envmxdIZc C2/A074 AB PLB A:0000 X:FC00 Y:2400 P:envmxdIZc C2/A075 86 54 STX $54 [$00:0054] A:0000 X:FC00 Y:2400 P:envmxdIZc C2/A077 20 42 A3 JSR $A342 [$C2:A342] A:0000 X:FC00 Y:2400 ;MONSTER BSC: Battle Script Functions (starting from $A077) C2/A07A 2B PLD A:0008 X:FC00 Y:0008 P:envmxdIzC C2/A07B AB PLB A:0008 X:FC00 Y:0008 P:envmxdIZC C2/A07C 28 PLP A:0008 X:FC00 Y:0008 P:envmxdIZC C2/A07D 6B RTL A:0008 X:FC00 Y:0008 P:eNvmxdIZc ATTACKS: load weapon/spell/item type and attributes C2/A093 08 PHP A:0004 X:0004 Y:2480 P:envmxdIzc C2/A094 8B PHB A:0004 X:0004 Y:2480 P:envmxdIzc C2/A095 0B PHD A:0004 X:0004 Y:2480 P:envmxdIzc C2/A096 C2 30 REP #$30 A:0004 X:0004 Y:2480 P:envmxdIzc C2/A098 A9 00 00 LDA #$0000 A:0004 X:0004 Y:2480 P:envmxdIzc C2/A09B 5B TCD A:0000 X:0004 Y:2480 P:envmxdIZc C2/A09C 48 PHA A:0000 X:0004 Y:2480 P:envmxdIZc C2/A09D AB PLB A:0000 X:0004 Y:2480 P:envmxdIZc C2/A09E AB PLB A:0000 X:0004 Y:2480 P:envmxdIZc C2/A09F AD 2A 07 LDA $072A [$00:072A] A:0000 X:0004 Y:2480 P:envmxdIZc C2/A0A2 0A ASL A A:0002 X:0004 Y:2480 P:envmxdIzc C2/A0A3 AA TAX A:0004 X:0004 Y:2480 C2/A0A4 FC AB A0 C2/A0A7 2B PLD A:0000 X:0000 Y:0732 C2/A0A8 AB PLB A:0000 X:0000 Y:0732 C2/A0A9 28 PLP A:0000 X:0000 Y:0732 C2/A0AA 6B RTL A:0000 X:0000 Y:0732 C2/A0AB B5 A0 ;... (jumps to RTS) C2/A0AD B5 A0 ;... (jumps to RTS) C2/A0AF CA BC ;Weapons [$BCCA] C2/A0B1 E6 BC ;Spells [$BCE6] C2/A0B3 1D BD ;Items [$BD1D] C2/A0B5 60 Ally: Turn Start ... from C2/A015 ...(JMP $A0B6) C2/A0B6 08 PHP A:FA80 X:FA80 Y:2480 C2/A0B7 8B PHB A:FA80 X:FA80 Y:2480 C2/A0B8 0B PHD A:FA80 X:FA80 Y:2480 C2/A0B9 C2 30 REP #$30 A:FA80 X:FA80 Y:2480 C2/A0BB A9 00 00 LDA #$0000 A:FA80 X:FA80 Y:2480 C2/A0BE 5B TCD A:0000 X:FA80 Y:2480 C2/A0BF 48 PHA A:0000 X:FA80 Y:2480 C2/A0C0 AB PLB A:0000 X:FA80 Y:2480 C2/A0C1 AB PLB A:0000 X:FA80 Y:2480 C2/A0C2 86 54 STX $54 [$00:0054] A:0000 X:FA80 Y:2480 C2/A0C4 20 79 C7 JSR $C779 [$C2:C779] A:0000 X:FA80 Y:2480 ;check status ailments C2/A0C7 2B PLD A:8080 X:FA80 Y:2480 C2/A0C8 AB PLB A:8080 X:FA80 Y:2480 C2/A0C9 28 PLP A:8080 X:FA80 Y:2480 C2/A0CA 6B RTL A:8080 X:FA80 Y:2480 ;end (jumps back to $1FCA) load timing for weapons/defense/spells C2/A0CB 08 PHP A:0194 X:0002 Y:FF0F C2/A0CC 8B PHB A:0194 X:0002 Y:FF0F C2/A0CD 0B PHD A:0194 X:0002 Y:FF0F C2/A0CE C2 30 REP #$30 A:0194 X:0002 Y:FF0F C2/A0D0 A9 00 00 LDA #$0000 A:0194 X:0002 Y:FF0F C2/A0D3 5B TCD A:0000 X:0002 Y:FF0F C2/A0D4 48 PHA A:0000 X:0002 Y:FF0F C2/A0D5 AB PLB A:0000 X:0002 Y:FF0F C2/A0D6 AB PLB A:0000 X:0002 Y:FF0F C2/A0DE 94 C8 ;ALLY: Timed-hit Calculation 3E C9 ;ALLY: Timing for Physical Defense C6 CA ;Additional timing effects for all ally spells 53 D0 ;SPELLS: Damage calculations for all spells D8 D1 ;SPELLS: Targetting table C2/A0DA 2B PLD A:0000 X:0002 Y:FF0F C2/A0DB AB PLB A:0000 X:0002 Y:FF0F C2/A0DC 28 PLP A:0000 X:0002 Y:FF0F C2/A0DD 6B RTL A:0000 X:0002 Y:FF0F load statuses before battle C2/A0E8 08 PHP A:1808 X:FA80 Y:1313 C2/A0E9 8B PHB A:1808 X:FA80 Y:1313 C2/A0EA 0B PHD A:1808 X:FA80 Y:1313 C2/A0EB C2 30 REP #$30 A:1808 X:FA80 Y:1313 C2/A0ED A9 00 00 LDA #$0000 A:1808 X:FA80 Y:1313 C2/A0F0 5B TCD A:0000 X:FA80 Y:1313 C2/A0F1 48 PHA A:0000 X:FA80 Y:1313 C2/A0F2 AB PLB A:0000 X:FA80 Y:1313 C2/A0F3 AB PLB A:0000 X:FA80 Y:1313 C2/A0F4 86 54 STX $54 [$00:0054] A:0000 X:FA80 Y:1313 C2/A0F6 20 4C B9 JSR $B94C [$C2:B94C] A:0000 X:FA80 Y:1313 ;Loads equip stats before battle C2/A0F9 2B PLD A:00FF X:FA80 Y:0010 C2/A0FA AB PLB A:00FF X:FA80 Y:0010 C2/A0FB 28 PLP A:00FF X:FA80 Y:0010 C2/A0FC 6B RTL A:00FF X:FA80 Y:0010 Battle End C2/A112 08 PHP A:0000 X:0060 Y:2480 C2/A113 8B PHB A:0000 X:0060 Y:2480 C2/A114 0B PHD A:0000 X:0060 Y:2480 C2/A115 C2 30 REP #$30 A:0000 X:0060 Y:2480 C2/A117 A9 00 00 LDA #$0000 A:0000 X:0060 Y:2480 C2/A11A 5B TCD A:0000 X:0060 Y:2480 C2/A11B 48 PHA A:0000 X:0060 Y:2480 C2/A11C AB PLB A:0000 X:0060 Y:2480 C2/A11D AB PLB A:0000 X:0060 Y:2480 C2/A11E 86 54 STX $54 [$00:0054] A:0000 X:0060 Y:2480 C2/A120 20 76 DC JSR $DC76 [$C2:DC76] A:0000 X:0060 Y:2480 ;Battle End C2/A123 2B PLD A:0000 X:0000 Y:0000 C2/A124 AB PLB A:0000 X:0000 Y:0000 C2/A125 28 PLP A:0000 X:0000 Y:0000 C2/A126 6B RTL A:0000 X:0000 Y:0000 randomized attack? *confuse C2/A127 08 PHP A:FA80 X:2480 Y:2480 C2/A128 8B PHB A:FA80 X:2480 Y:2480 C2/A129 0B PHD A:FA80 X:2480 Y:2480 C2/A12A C2 30 REP #$30 A:FA80 X:2480 Y:2480 C2/A12C A9 00 00 LDA #$0000 A:FA80 X:2480 Y:2480 C2/A12F 5B TCD A:0000 X:2480 Y:2480 C2/A130 48 PHA A:0000 X:2480 Y:2480 C2/A131 AB PLB A:0000 X:2480 Y:2480 C2/A132 AB PLB A:0000 X:2480 Y:2480 C2/A133 86 54 STX $54 [$00:0054] A:0000 X:2480 Y:2480 C2/A135 20 25 AD JSR $AD25 [$C2:AD25] A:0000 X:2480 Y:2480 ;ALLY/MONSTER: *Confuse C2/A138 2B PLD A:FC00 X:0008 Y:2400 C2/A139 AB PLB A:FC00 X:0008 Y:2400 C2/A13A 28 PLP A:FC00 X:0008 Y:2400 C2/A13B 6B RTL A:FC00 X:0008 Y:2400 ================================================================= Battle loader C2/A2BD A9 00 00 LDA #$0000 A:0000 X:0002 Y:0008 C2/A2C0 8D 24 07 STA $0724 [$00:0724] A:0000 X:0002 Y:0008 C2/A2C3 8F 00 E0 7E STA $7EE000[$7E:E000] A:0000 X:0002 Y:0008 C2/A2C7 8F 02 E0 7E STA $7EE002[$7E:E002] A:0000 X:0002 Y:0008 C2/A2CB 8F 04 E0 7E STA $7EE004[$7E:E004] A:0000 X:0002 Y:0008 C2/A2CF 8F 06 E0 7E STA $7EE006[$7E:E006] A:0000 X:0002 Y:0008 C2/A2D3 8F 08 E0 7E STA $7EE008[$7E:E008] A:0000 X:0002 Y:0008 C2/A2D7 8F 0A E0 7E STA $7EE00A[$7E:E00A] A:0000 X:0002 Y:0008 C2/A2DB 8F 0C E0 7E STA $7EE00C[$7E:E00C] A:0000 X:0002 Y:0008 C2/A2DF 8F 0E E0 7E STA $7EE00E[$7E:E00E] A:0000 X:0002 Y:0008 C2/A2E3 60 RTS A:0000 X:0002 Y:0008 ================================================================= MONSTER: Load stats C2/A2E4 AF 10 00 F9 LDA $F90010[$F9:0010] A:0000 X:FC00 Y:1312 ;Load battle scripts C2/A2E8 85 A0 STA $A0 [$00:00A0] A:30AA X:FC00 Y:1312 C2/A2EA A9 F9 00 LDA #$00F9 A:30AA X:FC00 Y:1312 C2/A2ED 85 A2 STA $A2 [$00:00A2] A:00F9 X:FC00 Y:1312 C2/A2EF BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:00F9 X:FC00 Y:1312 ;load monster ID # C2/A2F3 29 FF 00 AND #$00FF A:0001 X:FC00 Y:1312 ;isolate C2/A2F6 0A ASL A A:0001 X:FC00 Y:1312 C2/A2F7 A8 TAY A:0002 X:FC00 Y:1312 C2/A2F8 B7 A0 LDA [$A0],y[$F9:30AC] A:0002 X:FC00 Y:0002 C2/A2FA 85 A0 STA $A0 [$00:00A0] A:32B0 X:FC00 Y:0002 C2/A2FC A0 FF FF LDY #$FFFF A:32B0 X:FC00 Y:0002 C2/A2FF C8 INY A:32B0 X:FC00 Y:FFFF C2/A300 B7 A0 LDA [$A0],y[$F9:32B0] A:32B0 X:FC00 Y:0000 C2/A302 29 FF 00 AND #$00FF A:EFFD X:FC00 Y:0000 C2/A305 C9 FF 00 CMP #$00FF A:00FD X:FC00 Y:0000 C2/A308 D0 F5 BNE $F5 [$A2FF] A:00FD X:FC00 Y:0000 C2/A30A C8 INY A:00FF X:FC00 Y:000B C2/A30B 98 TYA A:00FF X:FC00 Y:000C C2/A30C 18 CLC A:000C X:FC00 Y:000C C2/A30D 65 A0 ADC $A0 [$00:00A0] A:000C X:FC00 Y:000C C2/A30F A6 54 LDX $54 [$00:0054] A:32BC X:FC00 Y:000C C2/A311 9F 54 00 7E STA $7E0054,x[$7E:FC54] A:32BC X:FC00 Y:000C C2/A315 A5 A0 LDA $A0 [$00:00A0] A:32BC X:FC00 Y:000C C2/A317 9F 50 00 7E STA $7E0050,x[$7E:FC50] A:32B0 X:FC00 Y:000C C2/A31B A9 00 00 LDA #$0000 A:32B0 X:FC00 Y:000C C2/A31E 9F 52 00 7E STA $7E0052,x[$7E:FC52] A:0000 X:FC00 Y:000C C2/A322 9F 56 00 7E STA $7E0056,x[$7E:FC56] A:0000 X:FC00 Y:000C C2/A326 9F 60 00 7E STA $7E0060,x[$7E:FC60] A:0000 X:FC00 Y:000C C2/A32A 9F 62 00 7E STA $7E0062,x[$7E:FC62] A:0000 X:FC00 Y:000C C2/A32E 9F 64 00 7E STA $7E0064,x[$7E:FC64] A:0000 X:FC00 Y:000C C2/A332 9F 6A 00 7E STA $7E006A,x[$7E:FC6A] A:0000 X:FC00 Y:000C C2/A336 A9 FF FF LDA #$FFFF A:0000 X:FC00 Y:000C C2/A339 9F 66 00 7E STA $7E0066,x[$7E:FC66] A:FFFF X:FC00 Y:000C C2/A33D 9F 68 00 7E STA $7E0068,x[$7E:FC68] A:FFFF X:FC00 Y:000C C2/A341 60 RTS A:FFFF X:FC00 Y:000C ================================================================= MONSTER BSC: Battle Script Functions (starting from $A077) C2/A342 9C 28 07 STZ $0728 [$00:0728] A:0000 X:FC00 Y:2400 C2/A345 BF 50 00 7E LDA $7E0050,x[$7E:FC50] A:0000 X:FC00 Y:2400 C2/A349 85 50 STA $50 [$00:0050] A:32B0 X:FC00 Y:2400 C2/A34B E2 20 SEP #$20 A:32B0 X:FC00 Y:2400 C2/A34D A9 F9 LDA #$F9 A:32B0 X:FC00 Y:2400 C2/A34F 85 52 STA $52 [$00:0052] A:32F9 X:FC00 Y:2400 C2/A351 C2 20 REP #$20 A:32F9 X:FC00 Y:2400 C2/A353 BF 52 00 7E LDA $7E0052,x[$7E:FC52] A:32F9 X:FC00 Y:2400 C2/A357 A8 TAY A:0003 X:FC00 Y:2400 C2/A358 80 29 BRA $29 [$A383] A:0003 X:FC00 Y:0003 C2/A383 A9 00 00 LDA #$0000 A:0003 X:FC00 Y:0003 C2/A386 8D 2A 07 STA $072A [$00:072A] A:0000 X:FC00 Y:0003 C2/A389 8D 30 07 STA $0730 [$00:0730] A:0000 X:FC00 Y:0003 C2/A38C B7 50 LDA [$50],y[$F9:32B3] A:0000 X:FC00 Y:0003 C2/A38E 29 FF 00 AND #$00FF A:E0FD X:FC00 Y:0003 C2/A391 C9 E0 00 CMP #$00E0 A:00FD X:FC00 Y:0003 C2/A394 10 03 BPL $03 [$A399] A:00FD X:FC00 Y:0003 C2/A396 4C 06 A4 JMP $A406 [$C2:A406] A:0003 X:FC00 Y:0009 ;MONSTER BSC: Cast Attack (Do 1 Attack) (Cast Start) C2/A399 38 SEC A:00FD X:FC00 Y:0003 C2/A39A E9 E0 00 SBC #$00E0 A:00FD X:FC00 Y:0003 C2/A39D 0A ASL A A:001D X:FC00 Y:0003 C2/A39E AA TAX A:003A X:FC00 Y:0003 C2/A39F 7C C3 A3 JMP ($A3C3,x)[$C2:A897] A:003A X:003A Y:0003 2C A4 ;MONSTER BSC: Cast Attack (1 of 3 possible attacks) (Cast Start) 64 A4 A0 A4 ;??? random attack? AD A4 C4 A4 E2 A4 F9 A4 45 A5 9A A5 D3 A5 DF A5 ; Call monster? 54 A6 9B A6 A9 A6 BA A6 BD A6 ;MONSTER BSC: Cast Spell (Cast start) EE A6 30 A7 43 A7 8B A7 B9 A7 03 A4 03 A4 03 A4 03 A4 03 A4 03 A4 03 A4 1C A8 97 A8 ;MONSTER BSC: Wait 1 Turn (from battle script) A8 A8 D3 A8 ... C2/A3A2 A9 00 00 LDA #$0000 A:0003 X:0000 Y:0003 C2/A3A5 80 03 BRA $03 [$A3AA] A:0000 X:0000 Y:0003 C2/A3A7 A9 FF FF LDA #$FFFF A:00EF X:003A Y:0001 C2/A3AA 8D 26 07 STA $0726 [$00:0726] A:FFFF X:003A Y:0001 C2/A3AD A6 54 LDX $54 [$00:0054] A:FFFF X:003A Y:0001 C2/A3AF BF 50 00 7E LDA $7E0050,x[$7E:FC50] A:FFFF X:FC00 Y:0001 C2/A3B3 C5 50 CMP $50 [$00:0050] A:32B0 X:FC00 Y:0001 C2/A3B5 D0 06 BNE $06 [$A3BD] A:32B0 X:FC00 Y:0001 C2/A3B7 98 TYA A:32B0 X:FC00 Y:0001 C2/A3B8 9F 52 00 7E STA $7E0052,x[$7E:FC52] A:0001 X:FC00 Y:0001 C2/A3BC 60 RTS A:0001 X:FC00 Y:0001 ================================================================= MONSTER BSC: Cast Attacks/Spells (Cast End) ...jump from $A461... ...jump from $A6EB... C2/A3A2 A9 00 00 LDA #$0000 A:0002 X:0000 Y:0008 C2/A3A5 80 03 BRA $03 [$A3AA] A:0000 X:0000 Y:0008 ...jump from $A8A5... C2/A3A7 A9 FF FF LDA #$FFFF A:0003 X:003A Y:0009 C2/A3AA 8D 26 07 STA $0726 [$00:0726] A:FFFF X:003A Y:0009 C2/A3AD A6 54 LDX $54 [$00:0054] A:0000 X:0000 Y:0008 C2/A3AF BF 50 00 7E LDA $7E0050,x[$7E:FC50] A:0000 X:FC00 Y:0008 C2/A3B3 C5 50 CMP $50 [$00:0050] A:32B0 X:FC00 Y:0008 C2/A3B5 D0 06 BNE $06 [$A3BD] A:32B0 X:FC00 Y:0008 C2/A3B7 98 TYA A:32B0 X:FC00 Y:0008 C2/A3B8 9F 52 00 7E STA $7E0052,x[$7E:FC52] A:0008 X:FC00 Y:0008 C2/A3BC 60 RTS A:0008 X:FC00 Y:0008 ================================================================= MONSTER BSC: Cast Attack (Do 1 Attack) (Cast Start) $C2/A406 B7 50 LDA [$50],y[$F9:32B0] A:00FD X:FC00 Y:0000 $C2/A408 29 FF 00 AND #$00FF A:EFFD X:FC00 Y:0000 $C2/A40B 8D 2C 07 STA $072C [$00:072C] A:00FD X:FC00 Y:0000 $C2/A40E 84 56 STY $56 [$00:0056] A:00FD X:FC00 Y:0000 $C2/A410 AD 30 07 LDA $0730 [$00:0730] A:00FD X:FC00 Y:0000 $C2/A413 D0 03 BNE $03 [$A418] A:0000 X:FC00 Y:0000 $C2/A415 20 96 AB JSR $AB96 [$C2:AB96] A:0000 X:FC00 Y:0000 ;MONSTER BSC: Cast Attack (continued) MONSTER BSC: Cast Attack $C2/A418 A5 54 LDA $54 [$00:0054] A:FA80 X:0006 Y:0009 $C2/A41A 8D 50 07 STA $0750 [$00:0750] A:FC00 X:0006 Y:0009 $C2/A41D 20 CA BC JSR $BCCA [$C2:BCCA] A:FC00 X:0006 Y:0009 ;WEAPONS/SPELLS: Weapons [$BCCA] $C2/A420 A9 02 00 LDA #$0002 A:0001 X:0000 Y:0732 ;Set command to use (02=attack) $C2/A423 8D 2A 07 STA $072A [$00:072A] A:0002 X:0000 Y:0732 ;Set command to use $C2/A426 A4 56 LDY $56 [$00:0056] A:0002 X:0000 Y:0732 $C2/A428 C8 INY A:0002 X:0000 Y:0009 $C2/A429 4C A2 A3 JMP $A3A2 [$C2:A3A2] A:0002 X:0000 Y:000A ;Cast Attacks/Spells (Cast End) ================================================================= MONSTER BSC: Cast Attack (1 of 3 possible attacks) (Cast Start) $C2/A42C C8 INY A:0000 X:0000 Y:0004 $C2/A42D 84 56 STY $56 [$00:0056] A:0000 X:0000 Y:0005 $C2/A42F A9 03 00 LDA #$0003 A:0000 X:0000 Y:0005 $C2/A432 20 C6 B2 JSR $B2C6 [$C2:B2C6] A:0003 X:0000 Y:0005 ;Random numeral calculation $C2/A435 18 CLC A:0000 X:0000 Y:0005 $C2/A436 65 56 ADC $56 [$00:0056] A:0000 X:0000 Y:0005 $C2/A438 A8 TAY A:0005 X:0000 Y:0005 $C2/A439 B7 50 LDA [$50],y[$F9:32B5] A:0005 X:0000 Y:0005 $C2/A43B 29 FF 00 AND #$00FF A:1003 X:0000 Y:0005 $C2/A43E C9 FB 00 CMP #$00FB A:0003 X:0000 Y:0005 $C2/A441 F0 19 BEQ $19 [$A45C] A:0003 X:0000 Y:0005 $C2/A443 8D 2C 07 STA $072C [$00:072C] A:0003 X:0000 Y:0005 $C2/A446 AD 30 07 LDA $0730 [$00:0730] A:0003 X:0000 Y:0005 $C2/A449 D0 03 BNE $03 [$A44E] A:0000 X:0000 Y:0005 $C2/A44B 20 96 AB JSR $AB96 [$C2:AB96] A:0000 X:0000 Y:0005 ;MONSTER BSC: Cast Attack (continued) C2/A44E A5 54 LDA $54 [$00:0054] A:FA80 X:0006 Y:0005 C2/A450 8D 50 07 STA $0750 [$00:0750] A:FC00 X:0006 Y:0005 C2/A453 20 CA BC JSR $BCCA [$C2:BCCA] A:FC00 X:0006 Y:0005 ;WEAPONS/SPELLS: Weapons [$BCCA] C2/A456 A9 02 00 LDA #$0002 A:0000 X:0000 Y:0732 C2/A459 8D 2A 07 STA $072A [$00:072A] A:0002 X:0000 Y:0732 C2/A45C A4 56 LDY $56 [$00:0056] A:0002 X:0000 Y:0732 C2/A45E C8 INY A:0002 X:0000 Y:0005 C2/A45F C8 INY A:0002 X:0000 Y:0006 C2/A460 C8 INY A:0002 X:0000 Y:0007 C2/A461 4C A2 A3 JMP $A3A2 [$C2:A3A2] A:0002 X:0000 Y:0008 ================================================================= ??? Random Attack? C2/A4A0 C8 INY A:0004 X:0004 Y:000A C2/A4A1 B7 50 LDA [$50],y[$F9:3BBB] A:0004 X:0004 Y:000B C2/A4A3 29 FF 00 AND #$00FF A:001F X:0004 Y:000B C2/A4A6 20 D9 A8 JSR $A8D9 [$C2:A8D9] A:001F X:0004 Y:000B C2/A4A9 C8 INY A:FC80 X:0010 Y:000B C2/A4AA 4C 8C A3 JMP $A38C [$C2:A38C] A:FC80 X:0010 Y:000C ================================================================= MONSTER BSC: Set Target Invincibility C2/A683 BF 41 00 7E LDA $7E0041,x[$7E:FCC1] A:0000 X:FC80 Y:0007 C2/A687 09 03 00 ORA #$0003 A:0000 X:FC80 Y:0007 ;Sets Invincibility and Mortality protection C2/A68A 80 07 BRA $07 [$A693] A:0003 X:FC80 Y:0007 C2/A68C BF 41 00 7E LDA $7E0041,x[$7E:FCC1] A:0001 X:FC80 Y:000D C2/A690 29 FC FF AND #$FFFC A:0003 X:FC80 Y:000D ;Remove Invincibility and Mortality protection C2/A693 9F 41 00 7E STA $7E0041,x[$7E:FCC1] A:0003 X:FC80 Y:0007 ================================================================= MONSTER BSC: Cast Spell (Cast Start) C2/A6BD C8 INY A:001E X:001E Y:0001 C2/A6BE B7 50 LDA [$50],y[$F9:32B2] A:001E X:001E Y:0002 C2/A6C0 29 FF 00 AND #$00FF A:FD5A X:001E Y:0002 C2/A6C3 8D 2C 07 STA $072C [$00:072C] A:005A X:001E Y:0002 C2/A6C6 84 56 STY $56 [$00:0056] A:005A X:001E Y:0002 C2/A6C8 20 5E AE JSR $AE5E [$C2:AE5E] A:005A X:001E Y:0002 ;MONSTER BSC: Subtract FP cost from current FP C2/A6CB A5 A0 LDA $A0 [$00:00A0] A:0000 X:FC00 Y:043A C2/A6CD D0 08 BNE $08 [$A6D7] A:0001 X:FC00 Y:043A C2/A6D7 20 74 AD JSR $AD74 [$C2:AD74] A:0001 X:FC00 Y:043A C2/A6DA A5 54 LDA $54 [$00:0054] A:FA80 X:FFFE Y:0006 C2/A6DC 8D 50 07 STA $0750 [$00:0750] A:FC00 X:FFFE Y:0006 C2/A6DF 20 E6 BC JSR $BCE6 [$C2:BCE6] A:FC00 X:FFFE Y:0006 ;SPELLS: Spells [$BCE6] C2/A6E2 A9 03 00 LDA #$0003 A:0001 X:0000 Y:0732 ;Set command to use (03=spell) C2/A6E5 8D 2A 07 STA $072A [$00:072A] A:0003 X:FC00 Y:0732 ;Set command to use C2/A6E8 A4 56 LDY $56 [$00:0056] A:0003 X:FC00 Y:0732 C2/A6EA C8 INY A:0003 X:FC00 Y:0002 C2/A6EB 4C A2 A3 JMP $A3A2 [$C2:A3A2] A:0003 X:FC00 Y:0003 ================================================================= C2/A7D4 7C D7 A7 BA AE ;MONSTER BSC: Items stolen from Croco??? E9 AE ;MONSTER BSC: ??? 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 17 A8 ================================================================= MONSTER BSC: Wait 1 Turn (from battle script) C2/A897 C8 INY A:003A X:003A Y:0008 C2/A898 B7 50 LDA [$50],y[$F9:32B9] A:003A X:003A Y:0009 C2/A89A 29 FF 00 AND #$00FF A:FD03 X:003A Y:0009 C2/A89D C9 FF 00 CMP #$00FF A:0003 X:003A Y:0009 C2/A8A0 D0 03 BNE $03 [$A8A5] A:0003 X:003A Y:0009 C2/A8A5 4C A7 A3 JMP $A3A7 [$C2:A3A7] A:0003 X:003A Y:0009 ;MONSTER BSC: Cast Attacks/Spells (Cast End) ================================================================= ??? Random Attack? C2/A8D9 0A ASL A A:001F X:0004 Y:000B C2/A8DA AA TAX A:003E X:0004 Y:000B C2/A8DB 7C DE A8 JMP ($A8DE,x)[$C2:AA7E] A:003E X:003E Y:000B C2/A93E 60 RTS A:FC80 X:0010 Y:000B C2/AA7E 20 34 AC JSR $AC34 [$C2:AC34] A:003E X:003E Y:000B C2/AA81 4C 3E A9 JMP $A93E [$C2:A93E] A:FC80 X:0010 Y:000B ================================================================= MONSTER BSC: Cast Attack (continued) C2/AB96 84 AE STY $AE [$00:00AE] A:0000 X:FC00 Y:0009 C2/AB98 A2 00 00 LDX #$0000 A:0000 X:FC00 Y:0009 C2/AB9B A0 00 00 LDY #$0000 A:0000 X:0000 Y:0009 C2/AB9E BF EA A1 C2 LDA $C2A1EA,x[$C2:A1EA] A:0000 X:0000 Y:0000 ;Load ally data C2/ABA2 86 AC STX $AC [$00:00AC] A:FA80 X:0000 Y:0000 C2/ABA4 AA TAX A:FA80 X:0000 Y:0000 C2/ABA5 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:0000 ;load mortal status C2/ABA9 29 C0 00 AND #$00C0 A:0000 X:FA80 Y:0000 ;check mortal status C2/ABAC D0 06 BNE $06 [$ABB4] A:0000 X:FA80 Y:0000 C2/ABAE 8A TXA A:0000 X:FA80 Y:0000 C2/ABAF 99 60 07 STA $0760,y[$00:0760] A:FA80 X:FA80 Y:0000 C2/ABB2 C8 INY A:FA80 X:FA80 Y:0000 C2/ABB3 C8 INY A:FA80 X:FA80 Y:0001 C2/ABB4 A6 AC LDX $AC [$00:00AC] A:FA80 X:FA80 Y:0002 C2/ABB6 E8 INX A:FA80 X:0000 Y:0002 C2/ABB7 E8 INX A:FA80 X:0001 Y:0002 C2/ABB8 E0 05 00 CPX #$0005 A:FA80 X:0002 Y:0002 C2/ABBB 30 E1 BMI $E1 [$AB9E] A:FA80 X:0002 Y:0002 C2/ABBD C0 00 00 CPY #$0000 A:0080 X:0006 Y:0002 C2/ABC0 D0 06 BNE $06 [$ABC8] A:0080 X:0006 Y:0002 C2/ABC8 98 TYA A:0080 X:0006 Y:0002 C2/ABC9 C9 02 00 CMP #$0002 A:0002 X:0006 Y:0002 C2/ABCC D0 05 BNE $05 [$ABD3] A:0002 X:0006 Y:0002 C2/ABCE A0 00 00 LDY #$0000 A:0002 X:0006 Y:0002 C2/ABD1 80 06 BRA $06 [$ABD9] A:0002 X:0006 Y:0000 C2/ABD9 B9 60 07 LDA $0760,y[$00:0760] A:0002 X:0006 Y:0000 C2/ABDC 8D 30 07 STA $0730 [$00:0730] A:FA80 X:0006 Y:0000 C2/ABDF 9C 32 07 STZ $0732 [$00:0732] A:FA80 X:0006 Y:0000 C2/ABE2 A4 AE LDY $AE [$00:00AE] A:FA80 X:0006 Y:0000 C2/ABE4 60 RTS A:FA80 X:0006 Y:0009 ================================================================= ??? Random Attack? C2/AC34 84 AE STY $AE [$00:00AE] A:003E X:003E Y:000B C2/AC36 A2 00 00 LDX #$0000 A:003E X:003E Y:000B C2/AC39 A0 00 00 LDY #$0000 A:003E X:0000 Y:000B C2/AC3C BF F0 A1 C2 LDA $C2A1F0,x[$C2:A1F0] A:003E X:0000 Y:0000 C2/AC40 86 AC STX $AC [$00:00AC] A:FC00 X:0000 Y:0000 C2/AC42 AA TAX A:FF80 X:000E Y:0004 C2/AC43 BF 00 00 7E LDA $7E0000,x[$7E:FF80] A:FF80 X:FF80 Y:0004 C2/AC47 29 C0 00 AND #$00C0 A:FF80 X:FF80 Y:0004 C2/AC4A D0 06 BNE $06 [$AC52] A:0080 X:FF80 Y:0004 C2/AC52 A6 AC LDX $AC [$00:00AC] A:0080 X:FF80 Y:0004 C2/AC54 E8 INX A:0080 X:000E Y:0004 C2/AC55 E8 INX A:0080 X:000F Y:0004 C2/AC56 E0 0F 00 CPX #$000F A:0080 X:0010 Y:0004 C2/AC59 30 E1 BMI $E1 [$AC3C] A:0080 X:0010 Y:0004 C2/AC5B C0 00 00 CPY #$0000 A:0080 X:0010 Y:0004 C2/AC5E D0 06 BNE $06 [$AC66] A:0080 X:0010 Y:0004 C2/AC66 98 TYA A:0080 X:0010 Y:0004 C2/AC67 C9 02 00 CMP #$0002 A:0004 X:0010 Y:0004 C2/AC6A D0 05 BNE $05 [$AC71] A:0004 X:0010 Y:0004 C2/AC71 4A LSR A A:0004 X:0010 Y:0004 C2/AC72 20 C6 B2 JSR $B2C6 [$C2:B2C6] A:0002 X:0010 Y:0004 ;Random numeral calculation C2/AC75 0A ASL A A:0001 X:0010 Y:0004 C2/AC76 A8 TAY A:0002 X:0010 Y:0004 C2/AC77 B9 60 07 LDA $0760,y[$00:0762] A:0002 X:0010 Y:0002 C2/AC7A 8D 30 07 STA $0730 [$00:0730] A:FC80 X:0010 Y:0002 C2/AC7D 9C 32 07 STZ $0732 [$00:0732] A:FC80 X:0010 Y:0002 C2/AC80 A4 AE LDY $AE [$00:00AE] A:FC80 X:0010 Y:0002 C2/AC82 60 RTS A:FC80 X:0010 Y:000B ================================================================= ALLY/MONSTER: *Confuse C2/AD25 84 AE STY $AE [$00:00AE] A:0000 X:2480 Y:2480 C2/AD27 A2 00 00 LDX #$0000 A:0000 X:2480 Y:2480 C2/AD2A A0 00 00 LDY #$0000 A:0000 X:0000 Y:2480 C2/AD2D BF EA A1 C2 LDA $C2A1EA,x[$C2:A1EA] A:0000 X:0000 Y:0000 ;sets the RAM address for all mortal characters and monsters C2/AD31 86 AC STX $AC [$00:00AC] A:FA80 X:0000 Y:0000 C2/AD33 AA TAX A:FA80 X:0000 Y:0000 C2/AD34 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:0000 ;loads mortal status C2/AD38 29 C0 00 AND #$00C0 A:0000 X:FA80 Y:0000 ;checks mortal status C2/AD3B D0 06 BNE $06 [$AD43] A:0000 X:FA80 Y:0000 C2/AD3D 8A TXA A:0000 X:FA80 Y:0000 C2/AD3E 99 60 07 STA $0760,y[$00:0760] A:FA80 X:FA80 Y:0000 C2/AD41 C8 INY A:FA80 X:FA80 Y:0000 C2/AD42 C8 INY A:FA80 X:FA80 Y:0001 C2/AD43 A6 AC LDX $AC [$00:00AC] A:FA80 X:FA80 Y:0002 C2/AD45 E8 INX A:FA80 X:0000 Y:0002 C2/AD46 E8 INX A:FA80 X:0001 Y:0002 C2/AD47 E0 15 00 CPX #$0015 A:FA80 X:0002 Y:0002 C2/AD4A 30 E1 BMI $E1 [$AD2D] A:FA80 X:0002 Y:0002 ;waits until the counter set to 0 (it checks all allies + 15 monsters) C2/AD4C C0 00 00 CPY #$0000 A:0080 X:0016 Y:0004 C2/AD4F D0 06 BNE $06 [$AD57] A:0080 X:0016 Y:0004 C2/AD57 98 TYA A:0080 X:0016 Y:0004 C2/AD58 C9 02 00 CMP #$0002 A:0004 X:0016 Y:0004 C2/AD5B D0 05 BNE $05 [$AD62] A:0004 X:0016 Y:0004 C2/AD62 4A LSR A A:0004 X:0016 Y:0004 C2/AD63 20 C6 B2 JSR $B2C6 [$C2:B2C6] A:0002 X:0016 Y:0004 ;random number calculation C2/AD66 0A ASL A A:0000 X:0016 Y:0004 C2/AD67 A8 TAY A:0000 X:0016 Y:0004 C2/AD68 B9 60 07 LDA $0760,y[$00:0760] A:0000 X:0016 Y:0000 C2/AD6B 8D 30 07 STA $0730 [$00:0730] A:FA80 X:0016 Y:0000 ;current battle target C2/AD6E 9C 32 07 STZ $0732 [$00:0732] A:FA80 X:0016 Y:0000 C2/AD71 A4 AE LDY $AE [$00:00AE] A:FA80 X:0016 Y:0000 C2/AD73 60 RTS A:FA80 X:0016 Y:2480 ================================================================= MONSTER BSC: Spells C2/AD74 A5 A4 LDA $A4 [$00:00A4] A:0001 X:FC00 Y:043A P:envmxdIzC C2/AD76 29 18 00 AND #$0018 A:0054 X:FC00 Y:043A P:envmxdIzC C2/AD79 4A LSR A A:0010 X:FC00 Y:043A P:envmxdIzC C2/AD7A 4A LSR A A:0008 X:FC00 Y:043A P:envmxdIzc C2/AD7B AA TAX A:0004 X:FC00 Y:043A P:envmxdIzc C2/AD7C FC E8 AD JSR ($ADE8,x)[$C2:AE3D] A:0004 X:0004 Y:043A P:envmxdIzc C2/AD7F A9 00 00 LDA #$0000 A:00C2 X:0004 Y:043A P:envmxdIzc C2/AD82 85 AC STA $AC [$00:00AC] A:0000 X:0004 Y:043A P:envmxdIZc C2/AD84 85 AE STA $AE [$00:00AE] A:0000 X:0004 Y:043A P:envmxdIZc C2/AD86 A8 TAY A:0000 X:0004 Y:043A P:envmxdIZc C2/AD87 B7 A6 LDA [$A6],y[$C2:A1EA] A:0000 X:0004 Y:0000 P:envmxdIZc C2/AD89 AA TAX A:FA80 X:0004 Y:0000 P:eNvmxdIzc C2/AD8A A5 A4 LDA $A4 [$00:00A4] A:FA80 X:FA80 Y:0000 P:eNvmxdIzc C2/AD8C 89 20 00 BIT #$0020 A:0054 X:FA80 Y:0000 P:envmxdIzc C2/AD8F D0 0B BNE $0B [$AD9C] A:0054 X:FA80 Y:0000 P:envmxdIZc C2/AD91 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:0054 X:FA80 Y:0000 P:envmxdIZc C2/AD95 29 C0 00 AND #$00C0 A:0000 X:FA80 Y:0000 P:envmxdIZc C2/AD98 F0 12 BEQ $12 [$ADAC] A:0000 X:FA80 Y:0000 P:envmxdIZc C2/ADAC 8A TXA A:0000 X:FA80 Y:0000 P:envmxdIZc C2/ADAD A6 AC LDX $AC [$00:00AC] A:FA80 X:FA80 Y:0000 P:eNvmxdIzc C2/ADAF 9D 60 07 STA $0760,x[$00:0760] A:FA80 X:0000 Y:0000 P:envmxdIZc $C2/ADB2 E8 INX A:FA80 X:0000 Y:0000 P:envmxdIZc $C2/ADB3 E8 INX A:FA80 X:0001 Y:0000 P:envmxdIzc $C2/ADB4 86 AC STX $AC [$00:00AC] A:FA80 X:0002 Y:0000 P:envmxdIzc $C2/ADB6 A4 AE LDY $AE [$00:00AE] A:FA80 X:0002 Y:0000 P:envmxdIzc $C2/ADB8 C8 INY A:FA80 X:0002 Y:0000 P:envmxdIZc $C2/ADB9 C8 INY A:FA80 X:0002 Y:0001 P:envmxdIzc $C2/ADBA 84 AE STY $AE [$00:00AE] A:FA80 X:0002 Y:0002 P:envmxdIzc $C2/ADBC C4 AA CPY $AA [$00:00AA] A:FA80 X:0002 Y:0002 P:envmxdIzc $C2/ADBE 30 C7 BMI $C7 [$AD87] A:FA80 X:0002 Y:0002 P:eNvmxdIzc $C2/ADC0 A6 AC LDX $AC [$00:00AC] A:0080 X:FB80 Y:0006 P:envmxdIzC $C2/ADC2 9E 60 07 STZ $0760,x[$00:0762] A:0080 X:0002 Y:0006 P:envmxdIzC $C2/ADC5 A5 A4 LDA $A4 [$00:00A4] A:0080 X:0002 Y:0006 P:envmxdIzC $C2/ADC7 89 80 00 BIT #$0080 A:0054 X:0002 Y:0006 P:envmxdIzC $C2/ADCA D0 0B BNE $0B [$ADD7] A:0054 X:0002 Y:0006 P:envmxdIZC $C2/ADCC BD 60 07 LDA $0760,x[$00:0762] A:0054 X:0002 Y:0006 P:envmxdIZC $C2/ADCF 9D 30 07 STA $0730,x[$00:0732] A:0000 X:0002 Y:0006 P:envmxdIZC $C2/ADD2 CA DEX A:0000 X:0002 Y:0006 P:envmxdIZC $C2/ADD3 CA DEX A:0000 X:0001 Y:0006 P:envmxdIzC $C2/ADD4 10 F6 BPL $F6 [$ADCC] A:0000 X:0000 Y:0006 P:envmxdIZC $C2/ADD6 60 RTS A:FA80 X:FFFE Y:0006 P:eNvmxdIzC ...return $A6DA... MONSTER BSC: Spells C2/AE3D A5 A4 LDA $A4 [$00:00A4] A:0004 X:0004 Y:043A P:envmxdIzc C2/AE3F 89 04 00 BIT #$0004 A:0054 X:0004 Y:043A P:envmxdIzc C2/AE42 D0 0A BNE $0A [$AE4E] A:0054 X:0004 Y:043A P:envmxdIzc C2/AE4E A9 05 00 LDA #$0005 A:0054 X:0004 Y:043A P:envmxdIzc C2/AE51 85 AA STA $AA [$00:00AA] A:0005 X:0004 Y:043A P:envmxdIzc C2/AE53 A9 EA A1 LDA #$A1EA A:0005 X:0004 Y:043A P:envmxdIzc C2/AE56 85 A6 STA $A6 [$00:00A6] A:A1EA X:0004 Y:043A P:eNvmxdIzc C2/AE58 A9 C2 00 LDA #$00C2 A:A1EA X:0004 Y:043A P:eNvmxdIzc C2/AE5B 85 A8 STA $A8 [$00:00A8] A:00C2 X:0004 Y:043A P:envmxdIzc C2/AE5D 60 RTS A:00C2 X:0004 Y:043A P:envmxdIzc ================================================================= MONSTER BSC: subtract FP cost from current FP C2/AE5E A9 01 00 LDA #$0001 A:005A X:001E Y:0002 C2/AE61 85 A0 STA $A0 [$00:00A0] A:0001 X:001E Y:0002 C2/AE63 AD 2C 07 LDA $072C [$00:072C] A:0001 X:001E Y:0002 C2/AE66 A2 46 00 LDX #$0046 A:005A X:001E Y:0002 C2/AE69 A0 A2 00 LDY #$00A2 A:005A X:0046 Y:0002 C2/AE6C 20 AB B5 JSR $B5AB [$C2:B5AB] A:005A X:0046 Y:00A2 C2/AE6F A5 A2 LDA $A2 [$00:00A2] A:4606 X:00A2 Y:033E ;load FP cost and targetting C2/AE71 AA TAX A:4606 X:00A2 Y:033E C2/AE72 EB XBA A:4606 X:4606 Y:033E C2/AE73 29 FF 00 AND #$00FF A:0646 X:4606 Y:033E ;isolate targetting byte C2/AE76 85 A4 STA $A4 [$00:00A4] A:0046 X:4606 Y:033E ;store as targetting C2/AE78 8A TXA A:0046 X:4606 Y:033E C2/AE79 29 FF 00 AND #$00FF A:4606 X:4606 Y:033E ;isolate FP cost byte C2/AE7C 85 A2 STA $A2 [$00:00A2] A:0006 X:4606 Y:033E ;store as FP cost C2/AE7E A6 54 LDX $54 [$00:0054] A:0006 X:4606 Y:033E ;load monster slot C2/AE80 BF 1A 00 7E LDA $7E001A,x[$7E:FC1A] A:0006 X:FC00 Y:033E ;load current FP C2/AE84 29 FF 00 AND #$00FF A:00FA X:FC00 Y:033E ;isolate C2/AE87 38 SEC A:00FA X:FC00 Y:033E C2/AE88 E5 A2 SBC $A2 [$00:00A2] A:00FA X:FC00 Y:033E ;subtract spell's FP cost C2/AE8A 10 0D BPL $0D [$AE99] A:00F4 X:FC00 Y:033E ;branch if > 0 C2/AE8C A9 FD 00 8D 2C 07 ;Displays "Monster's FP is gone!" C2/AE99 85 A2 STA $A2 [$00:00A2] A:00F4 X:FC00 Y:033E ;store as FP modification C2/AE9B BF 1A 00 7E LDA $7E001A,x[$7E:FC1A] A:00F4 X:FC00 Y:033E ;load current FP C2/AE9F 29 00 FF AND #$FF00 A:00FA X:FC00 Y:033E C2/AEA2 05 A2 ORA $A2 [$00:00A2] A:0000 X:FC00 Y:033E ;set FP modification bits C2/AEA4 9F 1A 00 7E STA $7E001A,x[$7E:FC1A] A:00F4 X:FC00 Y:033E ;store as current FP C2/AEA8 BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:00F4 X:FC00 Y:033E ;check if mute C2/AEAC 89 01 00 BIT #$0001 A:0200 X:FC00 Y:033E ;if mute is active C2/AEAF F0 08 BEQ $08 [$AEB9] A:0200 X:FC00 Y:033E ;branch if not set C2/ A9 FC 00 8D 2C 07 64 A0 ;Displays "The monster is mute!" C2/AEB9 60 RTS A:0200 X:FC00 Y:033E ================================================================= ??? MONSTER BSC: Items stolen from Croco??? C2/AEBA ;start C2/AEC1 BF 82 F8 7F ;load items inventory 9F E0 E7 7E ;save to this address A9 FF FF 9F 82 F8 7F ;save FF FF to inventory (FF means NO ITEM) ... C2/AEDA BF E0 E7 7E ;loads from this address 9F 82 F8 7F ;saves to items inventory ================================================================= C2/B254 08 ALLY: Vital status of allies on field $C2/B268 BF 00 00 7E LDA $7E0000,x[$7E:FA80] A:FA80 X:FA80 Y:0000 P:eNvmxdIzC $C2/B26C 29 C0 00 AND #$00C0 A:0040 X:FA80 Y:0000 P:envmxdIzC $C2/B26F D0 02 BNE $02 [$B273] A:0040 X:FA80 Y:0000 P:envmxdIzC $C2/B273 BB TYX A:0080 X:FB00 Y:0002 P:envmxdIzc $C2/B274 E8 INX A:0080 X:0002 Y:0002 P:envmxdIzc $C2/B275 E8 INX A:0080 X:0003 Y:0002 P:envmxdIzc $C2/B276 E0 05 00 CPX #$0005 A:0080 X:0004 Y:0002 P:envmxdIzc $C2/B279 30 E7 BMI $E7 [$B262] A:0080 X:0004 Y:0002 P:eNvmxdIzc $C2/B27B A5 D0 LDA $D0 [$00:00D0] A:0080 X:0006 Y:0004 P:envmxdIzC $C2/B27D D0 0C BNE $0C [$B28B] A:0000 X:0006 Y:0004 P:envmxdIZC $C2/B27F A9 02 00 LDA #$0002 A:0000 X:0006 Y:0004 P:envmxdIZC $C2/B282 0C 00 07 TSB $0700 [$00:0700] A:0002 X:0006 Y:0004 P:envmxdIzC $C2/B285 A9 00 80 LDA #$8000 A:0002 X:0006 Y:0004 P:envmxdIZC $C2/B288 0C 08 07 TSB $0708 [$00:0708] A:8000 X:0006 Y:0004 P:eNvmxdIzC MONSTER: Vital status of all monsters on the field (for checking flower bonus) C2/B28D 08 PHP A:0000 X:FC00 Y:0000 C2/B28E C2 20 REP #$20 A:0000 X:FC00 Y:0000 C2/B290 A9 00 40 LDA #$4000 A:0000 X:FC00 Y:0000 C2/B293 1C 08 07 TRB $0708 [$00:0708] A:4000 X:FC00 Y:0000 C2/B296 A2 00 00 LDX #$0000 A:4000 X:FC00 Y:0000 C2/B299 86 D0 STX $D0 [$00:00D0] A:4000 X:0000 Y:0000 C2/B29B 9B TXY A:4000 X:0000 Y:0000 C2/B29C BF F0 A1 C2 LDA $C2A1F0,x[$C2:A1F0] A:4000 X:0000 Y:0000 ;Load monster's stats C2/B2A0 AA TAX A:FC00 X:0000 Y:0000 C2/B2A1 BF 00 00 7E LDA $7E0000,x[$7E:FC00] A:FC00 X:FC00 Y:0000 ;load mortal status C2/B2A5 29 C0 00 AND #$00C0 A:0040 X:FC00 Y:0000 ;check if disabled or removed C2/B2A8 D0 02 BNE $02 [$B2AC] A:0040 X:FC00 Y:0000 C2/B2AC BB TYX A:0040 X:FC00 Y:0000 C2/B2AD E8 INX A:0040 X:0000 Y:0000 C2/B2AE E8 INX A:0040 X:0001 Y:0000 C2/B2AF E0 0F 00 CPX #$000F A:0040 X:0002 Y:0000 C2/B2B2 30 E7 BMI $E7 [$B29B] A:0080 X:0010 Y:000E C2/B2B4 A5 D0 LDA $D0 [$00:00D0] A:0080 X:0010 Y:000E C2/B2B6 D0 0C BNE $0C [$B2C4] A:0001 X:0010 Y:000E C2/B2B8 A9 02 00 LDA #$0002 A:00F5 X:2500 Y:2500 C2/B2BB 0C 00 07 TSB $0700 [$00:0700] A:00F5 X:2500 Y:2500 C2/B2BE A9 00 40 LDA #$4000 A:00F5 X:2500 Y:2500 C2/B2C1 0C 08 07 TSB $0708 [$00:0708] A:00F5 X:2500 Y:2500 C2/B2C4 28 PLP A:00F5 X:2500 Y:2500 C2/B2C5 60 RTS A:0001 X:0010 Y:000E ================================================================= Evade/Evasion: Randomized hit number calculation NOTES: Also used for *Confuse C2/B2C6 DA PHX A:0064 X:FC00 Y:0730 C2/B2C7 5A PHY A:0064 X:FC00 Y:0730 C2/B2C8 85 44 STA $44 [$00:0044] A:0064 X:FC00 Y:0730 C2/B2CA A5 40 LDA $40 [$00:0040] A:0064 X:FC00 Y:0730 C2/B2CC 29 00 FF AND #$FF00 A:0000 X:FC00 Y:0730 C2/B2CF 09 01 00 ORA #$0001 A:0000 X:FC00 Y:0730 C2/B2D2 85 40 STA $40 [$00:0040] A:0001 X:FC00 Y:0730 C2/B2D4 22 00 00 C0 JSL $C00000[$C0:0000] A:0001 X:FC00 Y:0730 C2/B2D8 A5 46 LDA $46 [$00:0046] A:0000 X:0015 Y:0730 C2/B2DA 7A PLY A:0015 X:0015 Y:0730 C2/B2DB FA PLX A:0015 X:0015 Y:0730 C2/B2DC 60 RTS A:0015 X:FC00 Y:0730 C2/B2DD A5 DB LDA $DB [$00:00DB] A:0000 X:FA80 Y:0730 C2/B2DF 38 SEC A:0000 X:FA80 Y:0730 C2/B2E0 E5 DA SBC $DA [$00:00DA] A:0000 X:FA80 Y:0730 C2/B2E2 EB XBA A:0000 X:FA80 Y:0730 C2/B2E3 A9 00 LDA #$00 A:0000 X:FA80 Y:0730 C2/B2E5 EB XBA A:0000 X:FA80 Y:0730 C2/B2E6 C2 20 REP #$20 A:0000 X:FA80 Y:0730 C2/B2E8 1A INC A A:0000 X:FA80 Y:0730 C2/B2E9 20 C6 B2 JSR $B2C6 [$C2:B2C6] A:0001 X:FA80 Y:0730 C2/B2EC E2 20 SEP #$20 A:0000 X:FA80 Y:0730 C2/B2EE 18 CLC A:0000 X:FA80 Y:0730 C2/B2EF 65 DA ADC $DA [$00:00DA] A:0000 X:FA80 Y:0730 C2/B2F1 60 RTS A:0000 X:FA80 Y:0730 ================================================================= Evade/Evasion: generate random number/Randomized hit number calculation C2/B2F2 A5 DB ; C2/B2F5 EB C2/B2F6 A9 00 C2/B2F8 EB C2/B2F9 C2 20 C2/B2FB 1A C2/B2FC 20 C6 B2 C2/B2FE E2 20 SEP #$20 A:0062 X:FB80 Y:0730 C2/B300 C5 DA CMP $DA [$00:00DA] A:0062 X:FB80 Y:0730 ;compare generated number to Hit % C2/B302 30 03 BMI $03 [$B307] A:0062 X:FB80 Y:0730 ;branch if in hit range C2/B304 A9 00 LDA #$00 A:0062 X:FB80 Y:0730 ;set 'miss' flag C2/B306 60 RTS A:0000 X:FB80 Y:0730 ================================================================= Load monster's stats C2/B30A C2 20 REP #$20 A:0004 X:FA80 Y:2500 C2/B30C 8A TXA A:0004 X:FA80 Y:2500 C2/B30D CF F0 A1 C2 CMP $C2A1F0[$C2:A1F0] A:FA80 X:FA80 Y:2500 C2/B311 10 06 BPL $06 [$B319] A:FA80 X:FA80 Y:2500 C2/B313 A9 01 00 LDA #$0001 A:FA80 X:FA80 Y:2500 C2/B316 E2 20 SEP #$20 A:0001 X:FA80 Y:2500 C2/B318 60 RTS A:0001 X:FA80 Y:2500 A9 00 00 E2 20 60 ================================================================= Multiply the # of Power-ups from presses or rotations DISASSEMBLER NOTE: It's called by ally specials that use Button Mash / Arrow Rotation timings) - "7E:005E,x" and "7E:005F,x" are together one value (i.e. 16-bit) but together are used for different things. For allies, it's used as the timing stat for weapons. For monsters, it's used as the value used for each powerup of damage applied on PowerUps. - A "PowerUp" is the # of times the button was pressed or # of times arrows were rotated. - In all cases in this certain line of code, only the MONSTER VALUE can be used. C2/B33F A5 D0 ;from 7E:005E,x 8D 02 42 A5 D4 ;from $B0 (how many "PowerUps" there were) 8D 03 42 20 C9 B3 ; JSR to return AD 16 42 95 00 AD 17 42 95 01 74 02 A5 D1 ;from 7E:005F,x (a value from monsters ONLY) 8D 02 42 A5 D4 ;from $B0 (how many "PowerUps" there were) 8D 03 42 20 C9 B3 ; JSR to return B5 01 18 ; set addition 6D 16 42 95 01 B5 02 6D 17 42 95 02 60 ; return ================================================================= Universal Stats loader C2/B3CA 08 PHP A:0000 X:0006 Y:00E0 C2/B3CB C2 30 REP #$30 A:0000 X:0006 Y:00E0 C2/B3CD 29 FF 00 AND #$00FF A:0000 X:0006 Y:00E0 C2/B3D0 85 D0 STA $D0 [$00:00D0] A:0000 X:0006 Y:00E0 C2/B3D2 7C D5 B3 JMP ($B3D5,x)[$C2:B452] A:0000 X:0006 Y:00E0 E7 B3 ;Loads bytes for Monster attacks (loads 4 bytes to E0-E3) E7 B3 ;Loads bytes for Monster attacks (loads 4 bytes to E0-E3) 04 B4 ;Loads bytes for items (weapons/armors/accessories/consumables) (loads 18 bytes to E0-F1) 52 B4 ;Loads bytes for spells (loads 12 bytes to E0-EB) 8D B4 ;Loads ??? at FA:0002 (00-10) E4 B4 ;Loads ??? at FA:0002 (00-04) 1E B5 ;Loads ??? at FA:0000 (00-0E) (Something to do with monsters?) 65 B5 ;Loads bytes for EXP, coins, items, Yoshi Cookie (loads 4 bytes to E0-E3) 8E B5 ;Load timing ranges for weapons (before battle) ================================================================ Loads bytes for items (weapons/armors/accessories/consumables) (This example uses Rock Candy) C2/B404 AF 04 00 FA LDA $FA0004[$FA:0004] A:0083 X:0004 Y:00E0 C2/B408 85 DC STA $DC [$00:00DC] A:014D X:0004 Y:00E0 C2/B40A A9 FA 00 LDA #$00FA A:014D X:0004 Y:00E0 C2/B40D 85 DE STA $DE [$00:00DE] A:00FA X:0004 Y:00E0 C2/B40F A5 D0 LDA $D0 [$00:00D0] A:00FA X:0004 Y:00E0 C2/B411 0A ASL A A:0083 X:0004 Y:00E0 C2/B412 85 DA STA $DA [$00:00DA] A:0106 X:0004 Y:00E0 C2/B414 0A ASL A A:0106 X:0004 Y:00E0 C2/B415 0A ASL A A:020C X:0004 Y:00E0 C2/B416 0A ASL A A:0418 X:0004 Y:00E0 C2/B417 18 CLC A:0830 X:0004 Y:00E0 C2/B418 65 DA ADC $DA [$00:00DA] A:0830 X:0004 Y:00E0 C2/B41A BB TYX A:0936 X:0004 Y:00E0 C2/B41B A8 TAY A:0936 X:00E0 Y:00E0 C2/B41C B7 DC LDA [$DC],y[$FA:0A83] A:0936 X:00E0 Y:0936 C2/B41E 95 00 STA $00,x [$00:00E0] A:002B X:00E0 Y:0936 C2/B420 C8 INY A:002B X:00E0 Y:0936 C2/B421 C8 INY A:002B X:00E0 Y:0937 C2/B422 B7 DC LDA [$DC],y[$FA:0A85] A:002B X:00E0 Y:0938 C2/B424 95 02 STA $02,x [$00:00E2] A:5400 X:00E0 Y:0938 C2/B426 C8 INY A:5400 X:00E0 Y:0938 C2/B427 C8 INY A:5400 X:00E0 Y:0939 C2/B428 B7 DC LDA [$DC],y[$FA:0A87] A:5400 X:00E0 Y:093A C2/B42A 95 04 STA $04,x [$00:00E4] A:0000 X:00E0 Y:093A C2/B42C C8 INY A:0000 X:00E0 Y:093A C2/B42D C8 INY A:0000 X:00E0 Y:093B C2/B42E B7 DC LDA [$DC],y[$FA:0A89] A:0000 X:00E0 Y:093C C2/B430 95 06 STA $06,x [$00:00E6] A:0000 X:00E0 Y:093C C2/B432 C8 INY A:0000 X:00E0 Y:093C C2/B433 C8 INY A:0000 X:00E0 Y:093D C2/B434 B7 DC LDA [$DC],y[$FA:0A8B] A:0000 X:00E0 Y:093E C2/B436 95 08 STA $08,x [$00:00E8] A:0000 X:00E0 Y:093E C2/B438 C8 INY A:0000 X:00E0 Y:093E C2/B439 C8 INY A:0000 X:00E0 Y:093F C2/B43A B7 DC LDA [$DC],y[$FA:0A8D] A:0000 X:00E0 Y:0940 C2/B43C 95 0A STA $0A,x [$00:00EA] A:0000 X:00E0 Y:0940 C2/B43E C8 INY A:0000 X:00E0 Y:0940 C2/B43F C8 INY A:0000 X:00E0 Y:0941 C2/B440 B7 DC LDA [$DC],y[$FA:0A8F] A:0000 X:00E0 Y:0942 C2/B442 95 0C STA $0C,x [$00:00EC] A:0000 X:00E0 Y:0942 C2/B444 C8 INY A:0000 X:00E0 Y:0942 C2/B445 C8 INY A:0000 X:00E0 Y:0943 C2/B446 B7 DC LDA [$DC],y[$FA:0A91] A:0000 X:00E0 Y:0944 C2/B448 95 0E STA $0E,x [$00:00EE] A:C800 X:00E0 Y:0944 C2/B44A C8 INY A:C800 X:00E0 Y:0944 C2/B44B C8 INY A:C800 X:00E0 Y:0945 C2/B44C B7 DC LDA [$DC],y[$FA:0A93] A:C800 X:00E0 Y:0946 C2/B44E 95 10 STA $10,x [$00:00F0] A:00FF X:00E0 Y:0946 C2/B450 28 PLP A:00FF X:00E0 Y:0946 C2/B451 60 RTS A:00FF X:00E0 Y:0946 Loads bytes for spells C2/B452 AF 12 00 FA LDA $FA0012[$FA:0012] A:0006 X:0006 Y:00E0 C2/B456 85 DC STA $DC [$00:00DC] A:20F1 X:0006 Y:00E0 C2/B458 A9 FA 00 LDA #$00FA A:20F1 X:0006 Y:00E0 C2/B45B 85 DE STA $DE [$00:00DE] A:00FA X:0006 Y:00E0 C2/B45D A5 D0 LDA $D0 [$00:00D0] A:00FA X:0006 Y:00E0 C2/B45F 0A ASL A A:0006 X:0006 Y:00E0 C2/B460 0A ASL A A:000C X:0006 Y:00E0 C2/B461 85 DA STA $DA [$00:00DA] A:0018 X:0006 Y:00E0 C2/B463 0A ASL A A:0018 X:0006 Y:00E0 C2/B464 18 CLC A:0030 X:0006 Y:00E0 C2/B465 65 DA ADC $DA [$00:00DA] A:0030 X:0006 Y:00E0 C2/B467 BB TYX A:0048 X:0006 Y:00E0 C2/B468 A8 TAY A:0048 X:00E0 Y:00E0 C2/B469 B7 DC LDA [$DC],y[$FA:2139] A:0048 X:00E0 Y:0048 C2/B46B 95 00 STA $00,x [$00:00E0] A:0582 X:00E0 Y:0048 C2/B46D C8 INY A:0582 X:00E0 Y:0048 C2/B46E C8 INY A:0582 X:00E0 Y:0049 C2/B46F B7 DC LDA [$DC],y[$FA:213B] A:0582 X:00E0 Y:004A C2/B471 95 02 STA $02,x [$00:00E2] A:4202 X:00E0 Y:004A C2/B473 C8 INY A:4202 X:00E0 Y:004A C2/B474 C8 INY A:4202 X:00E0 Y:004B C2/B475 B7 DC LDA [$DC],y[$FA:213D] A:4202 X:00E0 Y:004C C2/B477 95 04 STA $04,x [$00:00E4] A:2800 X:00E0 Y:004C C2/B479 C8 INY A:2800 X:00E0 Y:004C C2/B47A C8 INY A:2800 X:00E0 Y:004D C2/B47B B7 DC LDA [$DC],y[$FA:213F] A:2800 X:00E0 Y:004E C2/B47D 95 06 STA $06,x [$00:00E6] A:7F64 X:00E0 Y:004E C2/B47F C8 INY A:7F64 X:00E0 Y:004E C2/B480 C8 INY A:7F64 X:00E0 Y:004F C2/B481 B7 DC LDA [$DC],y[$FA:2141] A:7F64 X:00E0 Y:0050 C2/B483 95 08 STA $08,x [$00:00E8] A:0000 X:00E0 Y:0050 C2/B485 C8 INY A:0000 X:00E0 Y:0050 C2/B486 C8 INY A:0000 X:00E0 Y:0051 C2/B487 B7 DC LDA [$DC],y[$FA:2143] A:0000 X:00E0 Y:0052 C2/B489 95 0A STA $0A,x [$00:00EA] A:00FF X:00E0 Y:0052 C2/B48B 28 PLP A:00FF X:00E0 Y:0052 C2/B48C 60 RTS A:00FF X:00E0 Y:0052 ---------------------------------------------------------------- Load timing ranges for weapons (before battle) C2/B58E AF 26 00 FA LDA $FA0026[$FA:0026] A:0003 X:0010 Y:00E0 ;pointer in bank 3A (goes to 3A/438A) C2/B592 85 DC STA $DC [$00:00DC] A:438A X:0010 Y:00E0 C2/B594 A9 FA 00 LDA #$00FA A:438A X:0010 Y:00E0 C2/B597 85 DE STA $DE [$00:00DE] A:00FA X:0010 Y:00E0 C2/B599 A5 D0 LDA $D0 [$00:00D0] A:00FA X:0010 Y:00E0 C2/B59B 0A ASL A A:0003 X:0010 Y:00E0 C2/B59C 0A ASL A A:0006 X:0010 Y:00E0 C2/B59D BB TYX A:000C X:0010 Y:00E0 C2/B59E A8 TAY A:000C X:00E0 Y:00E0 C2/B59F B7 DC LDA [$DC],y[$FA:4396] A:000C X:00E0 Y:000C ;load weapon range (bytes 1 and 2) C2/B5A1 95 00 STA $00,x [$00:00E0] A:1800 X:00E0 Y:000C ;save to DirectPage $E0 C2/B5A3 C8 INY A:1800 X:00E0 Y:000C C2/B5A4 C8 INY A:1800 X:00E0 Y:000D C2/B5A5 B7 DC LDA [$DC],y[$FA:4398] A:1800 X:00E0 Y:000E ;load weapons range (bytes 3 and 4) C2/B5A7 95 02 STA $02,x [$00:00E2] A:381E X:00E0 Y:000E ;save to DirectPage $E2 C2/B5A9 28 PLP A:381E X:00E0 Y:000E C2/B5AA 60 RTS A:381E X:00E0 Y:000E ---------------------------------------------------------------- MONSTER: Spells C2/B5AB 08 PHP A:005A X:0046 Y:00A2 P:envmxdIzc C2/B5AC C2 30 REP #$30 A:005A X:0046 Y:00A2 P:envmxdIzc C2/B5AE 29 FF 00 AND #$00FF A:005A X:0046 Y:00A2 P:envmxdIzc C2/B5B1 85 D0 STA $D0 [$00:00D0] A:005A X:0046 Y:00A2 P:envmxdIzc C2/B5B3 7C B6 B5 JMP ($B5B6,x)[$C2:B790] A:005A X:0046 Y:00A2 P:envmxdIzc C2/B790 A9 02 00 LDA #$0002 A:005A X:0046 Y:00A2 P:envmxdIzc C2/B793 4C 68 B7 JMP $B768 [$C2:B768] A:0002 X:0046 Y:00A2 P:envmxdIzc $C2/B768 85 D8 STA $D8 [$00:00D8] A:0002 X:0046 Y:00A2 P:envmxdIzc $C2/B76A AF 12 00 FA LDA $FA0012[$FA:0012] A:0002 X:0046 Y:00A2 ;load Special Attack names $C2/B76E 85 DC STA $DC [$00:00DC] A:20F1 X:0046 Y:00A2 P:envmxdIzc $C2/B770 A9 FA 00 LDA #$00FA A:20F1 X:0046 Y:00A2 P:envmxdIzc $C2/B773 85 DE STA $DE [$00:00DE] A:00FA X:0046 Y:00A2 P:envmxdIzc $C2/B775 A5 D0 LDA $D0 [$00:00D0] A:00FA X:0046 Y:00A2 P:envmxdIzc $C2/B777 0A ASL A A:005A X:0046 Y:00A2 P:envmxdIzc $C2/B778 0A ASL A A:00B4 X:0046 Y:00A2 P:envmxdIzc $C2/B779 85 DA STA $DA [$00:00DA] A:0168 X:0046 Y:00A2 P:envmxdIzc $C2/B77B 0A ASL A A:0168 X:0046 Y:00A2 P:envmxdIzc $C2/B77C 18 CLC A:02D0 X:0046 Y:00A2 P:envmxdIzc $C2/B77D 65 DA ADC $DA [$00:00DA] A:02D0 X:0046 Y:00A2 P:envmxdIzc $C2/B77F 18 CLC A:0438 X:0046 Y:00A2 P:envmxdIzc $C2/B780 65 D8 ADC $D8 [$00:00D8] A:0438 X:0046 Y:00A2 P:envmxdIzc $C2/B782 BB TYX A:043A X:0046 Y:00A2 P:envmxdIzc $C2/B783 A8 TAY A:043A X:00A2 Y:00A2 P:envmxdIzc $C2/B784 B7 DC LDA [$DC],y[$FA:252B] A:043A X:00A2 Y:043A P:envmxdIzc $C2/B786 95 00 STA $00,x [$00:00A2] A:5410 X:00A2 Y:043A P:envmxdIzc $C2/B788 28 PLP A:5410 X:00A2 Y:043A P:envmxdIzc $C2/B789 60 RTS A:5410 X:00A2 Y:043A P:envmxdIzc ---------------------------------------------------------------- Loads equip stats before battle DISASSEMBLER NOTE: This runs every time an equip item is changed on the Overworld menu, too. Not only just before loading the battle itself. Refreshes and resets all stats (to get a blank slate for application) C2/B94C 08 PHP A:0000 X:FA80 Y:1313 C2/B94D E2 20 SEP #$20 A:0000 X:FA80 Y:1313 C2/B94F 86 F8 STX $F8 [$00:00F8] A:0000 X:FA80 Y:1313 C2/B951 BF 15 00 7E LDA $7E0015,x[$7E:FA95] A:0000 X:FA80 Y:1313 C2/B955 9F 70 00 7E STA $7E0070,x[$7E:FAF0] A:0014 X:FA80 Y:1313 C2/B959 BF 16 00 7E LDA $7E0016,x[$7E:FA96] A:0014 X:FA80 Y:1313 C2/B95D 9F 72 00 7E STA $7E0072,x[$7E:FAF2] A:0014 X:FA80 Y:1313 C2/B961 BF 17 00 7E LDA $7E0017,x[$7E:FA97] A:0014 X:FA80 Y:1313 C2/B965 9F 74 00 7E STA $7E0074,x[$7E:FAF4] A:0000 X:FA80 Y:1313 C2/B969 BF 18 00 7E LDA $7E0018,x[$7E:FA98] A:0000 X:FA80 Y:1313 C2/B96D 9F 76 00 7E STA $7E0076,x[$7E:FAF6] A:000A X:FA80 Y:1313 C2/B971 BF 19 00 7E LDA $7E0019,x[$7E:FA99] A:000A X:FA80 Y:1313 C2/B975 9F 78 00 7E STA $7E0078,x[$7E:FAF8] A:0002 X:FA80 Y:1313 C2/B979 A9 00 LDA #$00 A:0002 X:FA80 Y:1313 C2/B97B 9F 71 00 7E STA $7E0071,x[$7E:FAF1] A:0000 X:FA80 Y:1313 C2/B97F 9F 73 00 7E STA $7E0073,x[$7E:FAF3] A:0000 X:FA80 Y:1313 C2/B983 9F 75 00 7E STA $7E0075,x[$7E:FAF5] A:0000 X:FA80 Y:1313 C2/B987 9F 77 00 7E STA $7E0077,x[$7E:FAF7] A:0000 X:FA80 Y:1313 C2/B98B 9F 79 00 7E STA $7E0079,x[$7E:FAF9] A:0000 X:FA80 Y:1313 C2/B98F 9F 40 00 7E STA $7E0040,x[$7E:FAC0] A:0000 X:FA80 Y:1313 C2/B993 9F 41 00 7E STA $7E0041,x[$7E:FAC1] A:0000 X:FA80 Y:1313 C2/B997 9F 42 00 7E STA $7E0042,x[$7E:FAC2] A:0000 X:FA80 Y:1313 C2/B99B 9F 43 00 7E STA $7E0043,x[$7E:FAC3] A:0000 X:FA80 Y:1313 C2/B99F 9F 44 00 7E STA $7E0044,x[$7E:FAC4] A:0000 X:FA80 Y:1313 C2/B9A3 9F 4B 00 7E STA $7E004B,x[$7E:FACB] A:0000 X:FA80 Y:1313 C2/B9A7 9F 4C 00 7E STA $7E004C,x[$7E:FACC] A:0000 X:FA80 Y:1313 C2/B9AB 9F 4D 00 7E STA $7E004D,x[$7E:FACD] A:0000 X:FA80 Y:1313 C2/B9AF 9F 4E 00 7E STA $7E004E,x[$7E:FACE] A:0000 X:FA80 Y:1313 C2/B9B3 9F 4F 00 7E STA $7E004F,x[$7E:FACF] A:0000 X:FA80 Y:1313 C2/B9B7 9F 5B 00 7E STA $7E005B,x[$7E:FADB] A:0000 X:FA80 Y:1313 Begins applying stats from equipment C2/B9BB BF 1C 00 7E LDA $7E001C,x[$7E:FA9C] A:0000 X:FA80 Y:1313 ;Load weapon index number C2/B9BF C9 FF CMP #$FF A:00FF X:FA80 Y:1313 C2/B9C1 D0 04 BNE $04 [$B9C7] A:00FF X:FA80 Y:1313 C2/B9C3 BF 01 00 7E LDA $7E0001,x[$7E:FA81] A:00FF X:FA80 Y:1313 ;load ally's number C2/B9C7 9F 2E 00 7E STA $7E002E,x[$7E:FAAE] A:0000 X:FA80 Y:1313 ;save to weapon animation to display C2/B9CB 85 FA STA $FA [$00:00FA] A:0000 X:FA80 Y:1313 C2/B9CD A2 10 00 LDX #$0010 A:0000 X:FA80 Y:1313 C2/B9D0 A0 E0 00 LDY #$00E0 A:0000 X:0010 Y:1313 C2/B9D3 20 CA B3 JSR $B3CA [$C2:B3CA] A:0000 X:0010 Y:00E0 ;Load timing ranges for weapons (before battle) C2/B9D6 A6 F8 LDX $F8 [$00:00F8] A:160E X:00E0 Y:0002 C2/B9D8 C2 20 REP #$20 A:160E X:FA80 Y:0002 C2/B9DA A5 E0 LDA $E0 [$00:00E0] A:160E X:FA80 Y:0002 C2/B9DC 9F 5C 00 7E STA $7E005C,x[$7E:FADC] A:0800 X:FA80 Y:0002 ;save weapon timings to byte 1 and byte 2 C2/B9E0 A5 E2 LDA $E2 [$00:00E2] A:0800 X:FA80 Y:0002 C2/B9E2 9F 5E 00 7E STA $7E005E,x[$7E:FADE] A:160E X:FA80 Y:0002 ;save weapon timings to byte 3 and byte 4 C2/B9E6 E2 20 SEP #$20 A:160E X:FA80 Y:0002 C2/B9E8 A5 FA LDA $FA [$00:00FA] A:160E X:FA80 Y:0002 C2/B9EA A2 04 00 LDX #$0004 A:1600 X:FA80 Y:0002 ;pointer C2/B9ED A0 E0 00 LDY #$00E0 A:1600 X:0004 Y:0002 ;start writing at direct page $7E:00E0 C2/B9F0 20 CA B3 JSR $B3CA [$C2:B3CA] A:1600 X:0004 Y:00E0 ;load item stats C2/B9F3 A6 F8 LDX $F8 [$00:00F8] A:00FF X:00E0 Y:0010 C2/B9F5 A5 EE LDA $EE [$00:00EE] A:00FF X:FA80 Y:0010 ;load weapon's RNG attack range C2/B9F7 9F 7A 00 7E STA $7E007A,x[$7E:FAFA] A:0000 X:FA80 Y:0010 ;save as RNG attack range byte C2/B9FB 20 34 BA JSR $BA34 [$C2:BA34] A:0000 X:FA80 Y:0010 ;Apply weapon stats on character C2/B9FE BF 1D 00 7E LDA $7E001D,x[$7E:FA9D] A:0000 X:FA80 Y:0010 ;Load armor C2/BA02 C9 FF CMP #$FF A:00FF X:FA80 Y:0010 ;check if nothing equipped C2/BA04 F0 0E BEQ $0E [$BA14] A:00FF X:FA80 Y:0010 ;skip if nothing equipped A2 04 00 ;pointer A0 E0 00 ;start writing at direct page $7E:00E0 20 CA B3 ;load item stats A6 F8 20 34 BA ;Apply armor stats on character C2/BA14 BF 1E 00 7E LDA $7E001E,x[$7E:FA9E] A:00FF X:FA80 Y:0010 ;Load accessory C2/BA18 C9 FF CMP #$FF A:004C X:FA80 Y:0010 C2/BA1A F0 0E BEQ $0E [$BA2A] A:004C X:FA80 Y:0010 C2/BA1C A2 04 00 LDX #$0004 A:004C X:FA80 Y:0010 C2/BA1F A0 E0 00 LDY #$00E0 A:004C X:0004 Y:0010 C2/BA22 20 CA B3 JSR $B3CA [$C2:B3CA] A:004C X:0004 Y:00E0 ;load item stats C2/BA25 A6 F8 LDX $F8 [$00:00F8] A:00FF X:00E0 Y:0568 C2/BA27 20 34 BA JSR $BA34 [$C2:BA34] A:00FF X:FA80 Y:0568 ;Apply accessory stats on character C2/BA2A BF 4F 00 7E LDA $7E004F,x[$7E:FACF] A:0000 X:FA80 Y:0568 ; Load status (Attack Up/Defense Up) casted from equipment C2/BA2E 9F 41 00 7E STA $7E0041,x[$7E:FAC1] A:0000 X:FA80 Y:0568 ; Save to current status in battle C2/BA32 28 PLP A:0000 X:FA80 Y:0568 C2/BA33 60 RTS A:0000 X:FA80 Y:0568 Apply equipment stats on character C2/BA34 C2 20 REP #$20 A:00FF X:FA80 Y:0568 C2/BA36 A5 E9 LDA $E9 [$00:00E9] A:00FF X:FA80 Y:0568 C2/BA38 29 FF 00 AND #$00FF A:0002 X:FA80 Y:0568 C2/BA3B 89 80 00 BIT #$0080 A:0002 X:FA80 Y:0568 C2/BA3E F0 03 BEQ $03 [$BA43] A:0002 X:FA80 Y:0568 C2/BA43 18 CLC A:0002 X:FA80 Y:0568 C2/BA44 7F 70 00 7E ADC $7E0070,x[$7E:FAF0] A:0002 X:FA80 Y:0568 ;Speed C2/BA48 10 03 BPL $03 [$BA4D] A:0016 X:FA80 Y:0568 ; C2/BA4D 9F 70 00 7E STA $7E0070,x[$7E:FAF0] A:0016 X:FA80 Y:0568 ; C2/BA51 A5 EA LDA $EA [$00:00EA] A:0016 X:FA80 Y:0568 C2/BA53 29 FF 00 AND #$00FF A:0100 X:FA80 Y:0568 C2/BA56 89 80 00 BIT #$0080 A:0000 X:FA80 Y:0568 C2/BA59 F0 03 BEQ $03 [$BA5E] A:0000 X:FA80 Y:0568 C2/BA5E 18 CLC A:0000 X:FA80 Y:0568 C2/BA5F 7F 72 00 7E ADC $7E0072,x[$7E:FAF2] A:0000 X:FA80 Y:0568 C2/BA63 10 03 BPL $03 [$BA68] A:0014 X:FA80 Y:0568 C2/BA68 9F 72 00 7E STA $7E0072,x[$7E:FAF2] A:0014 X:FA80 Y:0568 C2/BA6C A5 EB LDA $EB [$00:00EB] A:0014 X:FA80 Y:0568 C2/BA6E 29 FF 00 AND #$00FF A:0501 X:FA80 Y:0568 C2/BA71 89 80 00 BIT #$0080 A:0001 X:FA80 Y:0568 C2/BA74 F0 03 BEQ $03 [$BA79] A:0001 X:FA80 Y:0568 C2/BA79 18 CLC A:0001 X:FA80 Y:0568 C2/BA7A 7F 74 00 7E ADC $7E0074,x[$7E:FAF4] A:0001 X:FA80 Y:0568 C2/BA7E 10 03 BPL $03 [$BA83] A:0001 X:FA80 Y:0568 C2/BA83 9F 74 00 7E STA $7E0074,x[$7E:FAF4] A:0001 X:FA80 Y:0568 C2/BA87 A5 EC LDA $EC [$00:00EC] A:0001 X:FA80 Y:0568 C2/BA89 29 FF 00 AND #$00FF A:0105 X:FA80 Y:0568 C2/BA8C 89 80 00 BIT #$0080 A:0005 X:FA80 Y:0568 C2/BA8F F0 03 BEQ $03 [$BA94] A:0005 X:FA80 Y:0568 C2/BA94 18 CLC A:0005 X:FA80 Y:0568 C2/BA95 7F 76 00 7E ADC $7E0076,x[$7E:FAF6] A:0005 X:FA80 Y:0568 C2/BA99 10 03 BPL $03 [$BA9E] A:000F X:FA80 Y:0568 C2/BA9E 9F 76 00 7E STA $7E0076,x[$7E:FAF6] A:000F X:FA80 Y:0568 C2/BAA2 A5 ED LDA $ED [$00:00ED] A:000F X:FA80 Y:0568 C2/BAA4 29 FF 00 AND #$00FF A:0001 X:FA80 Y:0568 C2/BAA7 89 80 00 BIT #$0080 A:0001 X:FA80 Y:0568 C2/BAAA F0 03 BEQ $03 [$BAAF] A:0001 X:FA80 Y:0568 C2/BAAF 18 CLC A:0001 X:FA80 Y:0568 C2/BAB0 7F 78 00 7E ADC $7E0078,x[$7E:FAF8] A:0001 X:FA80 Y:0568 C2/BAB4 9F 78 00 7E STA $7E0078,x[$7E:FAF8] A:0003 X:FA80 Y:0568 C2/BAB8 E2 20 SEP #$20 A:0003 X:FA80 Y:0568 ; enable 8-bit C2/BABA BF 4B 00 7E LDA $7E004B,x[$7E:FACB] A:0003 X:FA80 Y:0568 C2/BABE 05 E4 ORA $E4 [$00:00E4] A:0000 X:FA80 Y:0568 ; Element C2/BAC0 9F 4B 00 7E STA $7E004B,x[$7E:FACB] A:0000 X:FA80 Y:0568 ; Save as element on weapon C2/BAC4 BF 4C 00 7E LDA $7E004C,x[$7E:FACC] A:0000 X:FA80 Y:0568 C2/BAC8 05 E5 ORA $E5 [$00:00E5] A:0000 X:FA80 Y:0568 ; Ineffective elements C2/BACA 9F 4C 00 7E STA $7E004C,x[$7E:FACC] A:0000 X:FA80 Y:0568 ; Saves and protects against elements (0 damage vs set element) C2/BACE BF 4D 00 7E LDA $7E004D,x[$7E:FACD] A:0000 X:FA80 Y:0568 ; elemental strengths C2/BAD2 05 E6 ORA $E6 [$00:00E6] A:0000 X:FA80 Y:0568 ; Add elemental strengths C2/BAD4 9F 4D 00 7E STA $7E004D,x[$7E:FACD] A:0000 X:FA80 Y:0568 C2/BAD8 A5 E0 LDA $E0 [$00:00E0] A:0000 X:FA80 Y:0568 ; Load item attributes [1] C2/BADA 89 80 BIT #$80 A:0002 X:FA80 Y:0568 ; Check if Mortality Protection bit set C2/BADC F0 0A BEQ $0A [$BAE8] A:0002 X:FA80 Y:0568 ; jump if not BF 4F 00 7E 09 02 ; Sets Mortality Protection 9F 4F 00 7E ; Saves back to Equip Enhancements byte C2/BAE8 A5 E1 LDA $E1 [$00:00E1] A:0002 X:FA80 Y:0568 ; Load item attributes C2/BAEA 89 01 BIT #$01 A:0000 X:FA80 Y:0568 ; Check if "Status Protection" bit is set C2/BAEC F0 0A BEQ $0A [$BAF8] A:0000 X:FA80 Y:0568 ; jump if not BF 4E 00 7E ; Load status protection byte 05 E7 ; Load status ailments 9F 4E 00 7E ; Save and protect against ailments C2/BAF8 A5 E1 LDA $E1 [$00:00E1] A:0000 X:FA80 Y:0568 C2/BAFA 89 02 BIT #$02 A:0000 X:FA80 Y:0568 ; check if "Status Infliction" (for enhancements like Attack Up/Defense Up etc) bit is set C2/BAFC F0 0A BEQ $0A [$BB08] A:0000 X:FA80 Y:0568 ; jump if not BF 4F 00 7E ; Load enhancements from equipment 05 E8 ; Load set enhancements from item 9F 4F 00 7E ; Saves and inflicts upon entering battle C2/BB08 60 RTS A:0000 X:FA80 Y:0568 ---------------------------------------------------------------- Inventory Equipment Items C2/BBF5 08 ;start for equipment E2 20 A2 00 00 BF 64 F8 7F ;load equipment storage C2/BBFF C9 FF ;see if there is an empty slot (FF is NO ITEM) F0 0B ;JSR BC0E C2/BC03 E8 E0 1E 00 30 F2 A2 FF FF 28 60 C2/BC0E A5 E0 C2/BC10 9F 64 F8 7F ;save to equipment storage 28 C2/BC15 60 C2/BC16 08 E2 20 A2 00 00 BF 64 F8 7F ;load equipment storage C5 E0 F0 0B E8 E0 1E 00 30 F2 C2/BC2A A2 FF FF 28 60 C2/BC2F A9 FF ;set to clear item (255 is NO ITEM) 9F 64 F8 7F ;save to current equipment storage 28 60 Regular Items C2/BC37 08 ;start for regular items E2 20 A2 00 00 C2/BC3D BF 82 F8 7F ;load current item storage C9 FF ;see if there is a free slot F0 0B E8 E0 1E 00 30 F2 ;jump back to ?? A2 FF FF 28 60 C2/BC50 A5 E0 9F 82 F8 7F ;save to current items storage 28 C2/BC57 60 C2/BC58 08 ;start for regular items E2 20 A2 00 00 C2/BC5E BF 82 F8 7F ;load current item storage C5 E0 F0 0B E8 E0 1E 00 30 F2 C2/BC6C A2 FF FF 28 60 C2/BC71 A9 FF ;set to clear item (255 is NO ITEM) 9F 82 F8 7F ;save to current items storage 28 60 Special Items C2/BC79 08 E2 20 A2 00 00 C2/BC7F BF A0 F8 7F ;load current Special Item storage C9 FF F0 0B C2/BC87 E8 E0 1E 00 30 F2 C2/BC8D A2 FF FF 28 60 C2/BC92 A5 E0 9F A0 F8 7F ;save to current Special Item storage 28 60 C2/BC9A 08 E2 20 A2 00 00 C2/BC7F BF A0 F8 7F ;load current Special Item storage C2/BCA4 C5 E0 F0 0B E8 E0 1E 00 30 F2 A2 FF FF 28 60 A9 FF ;set to clear item (255 is NO ITEM) 9F A0 F8 7F ;save to current Special Item storage 28 60 ---------------------------------------------------------------- ??? C2/BCBB 7C BE BC ;JMP call function F5 BB 16 BC 37 BC 58 BC 79 BC 9A BC ---------------------------------------------------------------- WEAPONS/SPELLS: Weapons [$BCCA] Spells [$BCE6] C2/BCCA E2 20 SEP #$20 A:0004 X:0004 Y:2500 C2/BCCC AE 50 07 LDX $0750 [$00:0750] A:0004 X:0004 Y:2500 C2/BCCF 86 C8 STX $C8 [$00:00C8] A:0004 X:FA80 Y:2500 C2/BCD1 20 0A B3 JSR $B30A [$C2:B30A] A:0004 X:FA80 Y:2500 ;load monster's stats C2/BCD4 85 CF STA $CF [$00:00CF] A:0001 X:FA80 Y:2500 C2/BCD6 A2 2E 07 LDX #$072E A:0001 X:FA80 Y:2500 C2/BCD9 86 C6 STX $C6 [$00:00C6] A:0001 X:072E Y:2500 C2/BCDB AD 2C 07 LDA $072C [$00:072C] A:0001 X:072E Y:2500 C2/BCDE 85 CD STA $CD [$00:00CD] A:0000 X:072E Y:2500 C2/BCE0 20 55 BD JSR $BD55 [$C2:BD55] A:0000 X:072E Y:2500 ; Begin rewriting Stats for Weapon/monster special attacks C2/BCE3 4C 53 BE JMP $BE53 [$C2:BE53] A:0000 X:FA80 Y:0000 ; General Functions -------------------------------- SPELLS: Spells [$BCE6] C2/BCE6 E2 20 SEP #$20 A:0006 X:0006 Y:2500 C2/BCE8 AE 50 07 LDX $0750 [$00:0750] A:0006 X:0006 Y:2500 C2/BCEB 86 C8 STX $C8 [$00:00C8] A:0006 X:FA80 Y:2500 C2/BCED 20 0A B3 JSR $B30A [$C2:B30A] A:0006 X:FA80 Y:2500 C2/BCF0 85 CF STA $CF [$00:00CF] A:0001 X:FA80 Y:2500 C2/BCF2 A2 2E 07 LDX #$072E A:0001 X:FA80 Y:2500 C2/BCF5 86 C6 STX $C6 [$00:00C6] A:0001 X:072E Y:2500 C2/BCF7 AD 2C 07 LDA $072C [$00:072C] A:0001 X:072E Y:2500 C2/BCFA 85 CD STA $CD [$00:00CD] A:0000 X:072E Y:2500 C2/BCFC 20 B7 BD JSR $BDB7 [$C2:BDB7] A:0000 X:072E Y:2500 ; Beginning of Rewriting stats from spell C2/BCFF A9 00 LDA #$00 A:00FF X:00E0 Y:000A C2/BD01 EB XBA A:0000 X:00E0 Y:000A C2/BD02 A5 CC LDA $CC [$00:00CC] A:0000 X:00E0 Y:000A ; Loads byte for SPECIAL FUNCTION (magic only) C2/BD04 C9 FF CMP #$FF A:00FF X:00E0 Y:000A C2/BD06 D0 03 BNE $03 [$BD0B] A:00FF X:00E0 Y:000A C2/BD08 4C 53 BE JMP $BE53 [$C2:BE53] A:00FF X:00E0 Y:000A ; General Functions SPECIAL FUNCTION (magic only) C2/BD0B 0A C2/BD0C AA C2/BD0D FC 13 BD ;JSR call function C2 20 ;set 16-bit mode 60 ;RTS/Return ...C2/BD0D call function... C2/BD13 02 BF ;scan current HP and show C2/BD15 25 BF ;... (MISS. Does nothing) C2/BD17 26 BF ;no damage/heal C2/BD19 4E BF ;revive + heal 3/4 max HP C2/BD1B 81 BF ;add Jump power counter to base damage -------------------------------- ITEMS [$BD1D] (This example uses Rock Candy) C2/BD1D E2 20 SEP #$20 A:0008 X:0008 Y:2500 C2/BD1F AE 50 07 LDX $0750 [$00:0750] A:0008 X:0008 Y:2500 C2/BD22 86 C8 STX $C8 [$00:00C8] A:0008 X:FA80 Y:2500 C2/BD24 20 0A B3 JSR $B30A [$C2:B30A] A:0008 X:FA80 Y:2500 ;Load monster's stats C2/BD27 85 CF STA $CF [$00:00CF] A:0001 X:FA80 Y:2500 C2/BD29 A2 2E 07 LDX #$072E A:0001 X:FA80 Y:2500 C2/BD2C 86 C6 STX $C6 [$00:00C6] A:0001 X:072E Y:2500 C2/BD2E 20 F7 BD JSR $BDF7 [$7F:BDF7] A:FF00 X:62E0 Y:3240 ;Item functions (Discard or Reuseable)+Status inflictions C2/BD31 A9 00 LDA #$00 A:FF00 X:62E0 Y:3240 C2/BD33 EB XBA A:FF00 X:62E0 Y:3240 C2/BD34 A5 CC LDA $CC [$00:00CC] A:FF00 X:62E0 Y:3240 C2/BD36 C9 FF CMP #$FF A:FF00 X:62E0 Y:3240 C2/BD38 D0 03 BNE $03 [$BD3D] A:FF00 X:62E0 Y:3240 ;branch if there are any special infliction functions C2/BD3A 4C 53 BE JMP $BE53 [$7F:BE53] A:FF00 X:62E0 Y:3240 ;if not, go to General Functions Items: Inflict Function C2/BD3D 0A ASL A A:FF00 X:62E0 Y:3240 C2/BD3E AA TAX A:FF00 X:62E0 Y:3240 C2/BD3F FC 45 BD ;Call function @ #$BD45 C2 20 ;Read code in 16-bit mode 60 ;RTS/Return C2/BD45 AF BF ;... ??? 11 C0 ;Revive 40 C0 ;Restore FP 74 C0 ;__adds attributes to target character B2 C0 ;Restore HP 04 C1 ;Restore all HP/FP (KeroKeroCola) 48 C1 ;Raise Max FP 5E C1 ;Instant Death (Sheep Attack) ---------------------------------------------------------------- ATTACKS/WEAPONS/SPELLS: Begin Writing Stats C2/BD55 A0 01 00 LDY #$0001 A:0080 X:0000 Y:0002 ;set to use physical attack/defense of attacker/target C2/BD58 84 F8 STY $F8 [$00:00F8] A:0080 X:0000 Y:0002 ;save to F8. C2/BD5A A5 CF LDA $CF [$00:00CF] A:0080 X:0000 Y:0002 ;if a weapon, jump? C2/BD5C D0 41 BNE $41 [$BD9F] A:0080 X:0000 Y:0002 ;if a weapon, jump? Special Attacks for Monster: test attack flag bits Runs this check before $BE53 "WEAPONS/SPELLS/ITEMS: General Functions" C2/BD5E A5 CD LDA $CD [$00:00CD] A:0080 X:0000 Y:0002 C2/BD60 A2 02 00 LDX #$0002 A:0080 X:0000 Y:0002 C2/BD63 A0 E0 00 LDY #$00E0 A:0080 X:0000 Y:0002 C2/BD66 20 CA B3 JSR $B3CA [$7F:B3CA] A:0080 X:0000 Y:0002 ;load item stats C2/BD69 A5 E0 LDA $E0 [$00:00E0] A:0020 X:00E0 Y:00AE ;load attack flag C2/BD6B 0A ASL A A:0070 X:00E0 Y:00AE C2/BD6C 29 C0 AND #$C0 A:00E0 X:00E0 Y:00AE C2/BD6E 05 F8 ORA $F8 [$00:00F8] A:00C0 X:00E0 Y:00AE ;set attack type (magic, physical, etc) C2/BD70 85 F8 STA $F8 [$00:00F8] A:00C1 X:00E0 Y:00AE C2/BD72 A5 E0 LDA $E0 [$00:00E0] A:00C1 X:00E0 Y:00AE ;load attack flag C2/BD74 89 10 BIT #$10 A:0070 X:00E0 Y:00AE ;check no damage bit C2/BD76 F0 04 BEQ $04 [$BD7C] A:0070 X:00E0 Y:00AE ;branch if not set C2/BD78 A9 01 LDA #$01 A:0070 X:00E0 Y:00AE C2/BD7A 14 F8 TRB $F8 [$00:00F8] A:0001 X:00E0 Y:00AE ;clear damage bit of attack type C2/BD7C A5 E0 LDA $E0 [$00:00E0] A:0001 X:00E0 Y:00AE ;load attack flag C2/BD7E 89 08 BIT #$08 A:0070 X:00E0 Y:00AE ;check 9999 damage bit C2/BD80 F0 06 BEQ $06 [$BD88] A:0070 X:00E0 Y:00AE ;branch if not set C2/BD82 A9 20 LDA #$20 A:0008 X:00E0 Y:00AE C2/BD84 04 F8 TSB $F8 A:0020 X:00E0 Y:00AE ;set 9999 damage bit C2/BD86 04 F9 TSB $F9 A:0020 X:00E0 Y:00AE C2/BD88 A5 E1 LDA $E1 [$00:00E1] A:0070 X:00E0 Y:00AE ;load hit % C2/BD8A 85 FA STA $FA [$00:00FA] A:005A X:00E0 Y:00AE C2/BD8C A5 E0 LDA $E0 [$00:00E0] A:005A X:00E0 Y:00AE ;load attack flag C2/BD8E 29 07 AND #$07 A:0070 X:00E0 Y:00AE ;isolate attack level bits C2/BD90 85 FB STA $FB [$00:00FB] A:0000 X:00E0 Y:00AE ;attack level C2/BD92 64 FD STZ $FD [$00:00FD] A:0000 X:00E0 Y:00AE ;clear elemental properties C2/BD94 A4 E2 LDY $E2 [$00:00E2] A:0000 X:00E0 Y:00AE C2/BD96 84 FE STY $FE [$00:00FE] A:0000 X:00E0 Y:0020 C2/BD98 F0 04 BEQ $04 [$BD9E] A:0000 X:00E0 Y:0020 C2/BD9A A9 02 LDA #$02 A:0000 X:00E0 Y:0020 ;set Infliction Function as "infliction" C2/BD9C 04 F9 TSB $F9 [$00:00F9] A:0002 X:00E0 Y:0020 ; C2/BD9E 60 RTS A:0002 X:00E0 Y:0020 ALLY: Sets bits if a Weapon C2/BD9F A9 40 LDA #$40 A:3380 X:3380 Y:2500 ;set bit "is weapon" C2/BDA1 04 F9 TSB $F9 [$00:00F9] A:3380 X:3380 Y:2500 C2/BDA3 A9 63 LDA #$63 A:3380 X:3380 Y:2500 ;set A to 99 C2/BDA5 85 FA STA $FA [$00:00FA] A:3380 X:3380 Y:2500 ;Set hit % C2/BDA7 64 FB STZ $FB [$00:00FB] A:3380 X:3380 Y:2500 C2/BDA9 A6 C8 LDX $C8 [$00:00C8] A:3380 X:3380 Y:2500 C2/BDAB BF 4B 00 7E LDA $7E004B,x[$7E:33CB] A:3380 X:3380 Y:2500 ;load weapon's elemental property C2/BDAF 85 FD STA $FD [$00:00FD] A:3380 X:3380 Y:2500 ;save elemental C2/BDB1 A0 00 00 LDY #$0000 A:3380 X:3380 Y:2500 C2/BDB4 84 FE STY $FE [$00:00FE] A:3380 X:3380 Y:2500 C2/BDB6 60 RTS A:3380 X:3380 Y:2500 ---------------------------------------------------------------- SPELLS: Spells [$BCE6] Beginning of Rewriting stats from spell C2/BDB7 A5 CD LDA $CD [$00:00CD] A:0000 X:072E Y:2480 C2/BDB9 A2 06 00 LDX #$0006 A:0000 X:072E Y:2480 C2/BDBC A0 E0 00 LDY #$00E0 A:0000 X:0006 Y:2480 C2/BDBF 20 CA B3 JSR $B3CA [$C2:B3CA] A:0000 X:0006 Y:00E0 ;load item stats Load statuses for spells C2/BDC2 A5 E0 LDA $E0 [$00:00E0] A:00FF X:00E0 Y:000A C2/BDC4 29 23 AND #$23 A:0002 X:00E0 Y:000A C2/BDC6 85 F8 STA $F8 [$00:00F8] A:0002 X:00E0 Y:000A ;Byte 1: special flags C2/BDC8 A5 EB LDA $EB [$00:00EB] A:0002 X:00E0 Y:000A ;Byte 12: digit display (bit 2 - hide) C2/BDCA 89 04 BIT #$04 A:0000 X:00E0 Y:000A C2/BDCC F0 04 BEQ $04 [$BDD2] A:0000 X:00E0 Y:000A A9 40 ;hide damage numerals 04 F8 ; C2/BDD2 A5 E1 LDA $E1 [$00:00E1] A:0000 X:00E0 Y:000A C2/BDD4 29 1F AND #$1F A:0000 X:00E0 Y:000A C2/BDD6 09 80 ORA #$80 A:0000 X:00E0 Y:000A C2/BDD8 85 F9 STA $F9 [$00:00F9] A:0080 X:00E0 Y:000A ;Byte 2: attack flags C2/BDDA A5 E6 LDA $E6 [$00:00E6] A:0080 X:00E0 Y:000A ;Byte 7: Hit % C2/BDDC 85 FA STA $FA [$00:00FA] A:0064 X:00E0 Y:000A ;$FA C2/BDDE A5 E5 LDA $E5 [$00:00E5] A:0064 X:00E0 Y:000A ;Byte 6: Magic Power C2/BDE0 85 FB STA $FB [$00:00FB] A:0064 X:00E0 Y:000A ;$FB C2/BDE2 A5 E4 LDA $E4 [$00:00E4] A:0064 X:00E0 Y:000A ;Byte 5: element C2/BDE4 85 FD STA $FD [$00:00FD] A:0080 X:00E0 Y:000A ;$FD C2/BDE6 A5 E7 LDA $E7 [$00:00E7] A:0080 X:00E0 Y:000A ;Byte 8: status ailment C2/BDE8 29 EF AND #$EF A:0000 X:00E0 Y:000A ;Loads applicable status bonuses for all ailments (change to FF to include *confuse) C2/BDEA 85 FE STA $FE [$00:00FE] A:0000 X:00E0 Y:000A ;$FE C2/BDEC A5 E8 LDA $E8 [$00:00E8] A:0000 X:00E0 Y:000A ;Byte 9: status enhancement C2/BDEE 29 78 AND #$78 A:0000 X:00E0 Y:000A ;Loads applicable status bonuses for Attack/Defense/Magic/Mg.Defense Up C2/BDF0 85 FF STA $FF [$00:00FF] A:0000 X:00E0 Y:000A ;$FF C2/BDF2 A5 EA LDA $EA [$00:00EA] A:0000 X:00E0 Y:000A ;Byte 11: special function C2/BDF4 85 CC STA $CC [$00:00CC] A:00FF X:00E0 Y:000A ;special function (like show current HP, jump power, etc...) C2/BDF6 60 RTS A:00FF X:00E0 Y:000A ================================================================= ITEMS [$BD1D] (This example uses Rock Candy) item functions C2/BDF7 AE 2C 07 LDX $072C [$00:072C] A:0001 X:072E Y:2500 ;current spell to use C2/BDFA BF 82 F8 7F LDA $7FF882,x[$7F:F882] A:0001 X:0000 Y:2500 ;loads item index number for attributes C2/BDFE 85 CD STA $CD [$00:00CD] A:0083 X:0000 Y:2500 ;set current item index (Rock Candy in this case) C2/BE00 A2 04 00 LDX #$0004 A:0083 X:0000 Y:2500 C2/BE03 A0 E0 00 LDY #$00E0 A:0083 X:0004 Y:2500 C2/BE06 20 CA B3 JSR $B3CA [$C2:B3CA] A:0083 X:0004 Y:00E0 ;load item stats C2/BE09 AE 2C 07 LDX $072C [$00:072C] A:00FF X:00E0 Y:0946 ;set spell to use C2/BE0C A5 E0 LDA $E0 [$00:00E0] A:00FF X:0000 Y:0946 ;loads item attributes C2/BE0E 89 20 BIT #$20 A:002B X:0000 Y:0946 ;check reuseable bit C2/BE10 D0 06 BNE $06 [$BE18] A:002B X:0000 Y:0946 ;branch if set C2/BE12 A9 FF LDA #$FF A:042B X:0004 Y:0A78 ;load empty value C2/BE14 9F 82 F8 7F STA $7FF882,x[$7F:F886] A:042B X:0004 Y:0A78 ;store to item byte Load statuses for items C2/BE18 A5 CD LDA $CD [$00:00CD] A:002B X:0000 Y:0946 ;loads current item index (Rock Candy in this case) C2/BE1A 8D 2C 07 STA $072C [$00:072C] A:0083 X:0000 Y:0946 ;sets current animation to play? C2/BE1D 9C 2D 07 STZ $072D [$00:072D] A:0083 X:0000 Y:0946 ;set memory to 0? C2/BE20 A9 06 LDA #$06 A:0083 X:0000 Y:0946 C2/BE22 85 F8 STA $F8 [$00:00F8] A:0006 X:0000 Y:0946 ;F8=Byte 1 C2/BE24 A5 F1 LDA $F1 [$00:00F1] A:0006 X:0000 Y:0946 ;Byte 18: hide digits C2/BE26 89 04 BIT #$04 A:0000 X:0000 Y:0946 ;check hide digits bit C2/BE28 F0 04 BEQ $04 [$BE2E] A:0000 X:0000 Y:0946 ;jump if not set A9 40 ;begin setting hide digits number 04 F8 ;Test bit and set to byte 1 C2/BE2E A5 E1 LDA $E1 [$00:00E1] A:0000 X:0000 Y:0946 ;Byte 2: status flags/cursor behavior C2/BE30 29 06 AND #$06 A:0000 X:0000 Y:0946 C2/BE32 09 80 ORA #$80 A:0000 X:0000 Y:0946 C2/BE34 85 F9 STA $F9 [$00:00F9] A:0080 X:0000 Y:0946 C2/BE36 A9 64 LDA #$64 A:0080 X:0000 Y:0946 ;load 100 C2/BE38 85 FA STA $FA [$00:00FA] A:0064 X:0000 Y:0946 ;save hit % C2/BE3A A5 EF LDA $EF [$00:00EF] A:0064 X:0000 Y:0946 ;Byte 16: heal/damage amount C2/BE3C 85 FB STA $FB [$00:00FB] A:00C8 X:0000 Y:0946 C2/BE3E A5 E4 LDA $E4 [$00:00E4] A:00C8 X:0000 Y:0946 ;Byte 5: element C2/BE40 85 FD STA $FD [$00:00FD] A:0000 X:0000 Y:0946 C2/BE42 A5 E7 LDA $E7 [$00:00E7] A:0000 X:0000 Y:0946 ;Byte 8: status ailment C2/BE44 29 EF AND #$EF A:0000 X:0000 Y:0946 ;Loads applicable status bonuses for all ailments (change to FF to be able to use all ailments) C2/BE46 85 FE STA $FE [$00:00FE] A:0000 X:0000 Y:0946 C2/BE48 A5 E8 LDA $E8 [$00:00E8] A:0000 X:0000 Y:0946 ;Byte 9: status enhancement C2/BE4A 29 78 AND #$78 A:0000 X:0000 Y:0946 ;Loads applicable status bonuses for Attack/Defense/Magic/Mg.Defense Up C2/BE4C 85 FF STA $FF [$00:00FF] A:0000 X:0000 Y:0946 C2/BE4E A5 F0 LDA $F0 [$00:00F0] A:0000 X:0000 Y:0946 ;Byte 17: attack flags C2/BE50 85 CC STA $CC [$00:00CC] A:00FF X:0000 Y:0946 C2/BE52 60 RTS A:00FF X:0000 Y:0946 ================================================================= WEAPONS/SPELLS/ITEMS: General Functions C2/BE53 A4 C6 LDY $C6 [$00:00C6] A:0000 X:FA80 Y:0000 C2/BE55 C8 INY A:0000 X:FA80 Y:0730 C2/BE56 C8 INY A:0000 X:FA80 Y:0731 C2/BE57 B6 00 LDX $00,y [$00:0732] A:0000 X:FA80 Y:0732 C2/BE59 D0 03 BNE $03 [$BE5E] A:0000 X:0000 Y:0732 C2/BE5B 4C FF BE JMP $BEFF [$C2:BEFF] A:0000 X:0000 Y:0732 ;Sets to 16-bit mode & end/RTS C2/BE5E 84 C6 C2/BE60 86 CA C2/BE62 20 0A B3 ; load monster stats C2/BE65 85 CE STA $CE [$00:00CE] A:0001 X:FA80 Y:0730 C2/BE67 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0001 X:FA80 Y:0730 C2/BE6B 29 3F AND #$3F A:0000 X:FA80 Y:0730 C2/BE6D 9F 44 00 7E STA $7E0044,x[$7E:FAC4] A:0000 X:FA80 Y:0730 C2/BE71 A9 00 LDA #$00 A:0000 X:FA80 Y:0730 C2/BE73 9F 45 00 7E STA $7E0045,x[$7E:FAC5] A:0000 X:FA80 Y:0730 C2/BE77 9F 46 00 7E STA $7E0046,x[$7E:FAC6] A:0000 X:FA80 Y:0730 C2/BE7B A5 F8 LDA $F8 [$00:00F8] A:0000 X:FA80 Y:0730 C2/BE7D 89 40 BIT #$40 A:0040 X:FA80 Y:0730 ;check if hiding damage numerals C2/BE7F F0 0A BEQ $0A [$BE8B] A:0040 X:FA80 Y:0730 C2/BE81 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0040 X:FA80 Y:0730 C2/BE85 09 40 ORA #$40 A:0000 X:FA80 Y:0730 ;set Hide Numerals C2/BE87 9F 44 00 7E STA $7E0044,x[$7E:FAC4] A:0040 X:FA80 Y:0730 C2/BE8B 20 9E C1 JSR $C19E [$C2:C19E] A:0040 X:FA80 Y:0730 ;Evade/Magic Evade/Evasion C2/BE8E 85 CC STA $CC [$00:00CC] A:0001 X:FC00 Y:0730 C2/BE90 D0 12 BNE $12 [$BEA4] A:0001 X:FC00 Y:0730 C2/BE92 A5 F9 C2/BE94 89 08 ;??? 9999 damage? C2/BE96 F0 BB BEQ $BB [$BE53] C2/BE98 A6 CA LDX $CA [$00:00CA] A:08FE X:2D00 Y:2D00 C2/BE9A BF 44 00 7E LDA $7E0044,x[$7E:2D44] A:08FE X:2D00 Y:2D00 C2/BE9E 29 BF AND #$BF A:08FE X:2D00 Y:2D00 C2/BEA0 9F 44 00 7E STA $7E0044,x[$7E:2D44] A:08FE X:2D00 Y:2D00 C2/BEA4 A6 CA LDX $CA [$00:00CA] A:0001 X:FC00 Y:0730 C2/BEA6 BF 44 00 7E LDA $7E0044,x[$7E:FC44] A:0001 X:FC00 Y:0730 C2/BEAA 09 80 ORA #$80 A:0000 X:FC00 Y:0730 C2/BEAC 9F 44 00 7E STA $7E0044,x[$7E:FC44] A:0080 X:FC00 Y:0730 C2/BEB0 A5 F9 LDA $F9 [$00:00F9] A:0080 X:FC00 Y:0730 C2/BEB2 89 01 BIT #$01 A:0040 X:FC00 Y:0730 ;if healing, jump C2/BEB4 D0 10 BNE $10 [$BEC6] A:0040 X:FC00 Y:0730 C2/BEB6 BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:0040 X:FC00 Y:0730 C2/BEBA 89 80 BIT #$80 A:0000 X:FC00 Y:0730 ;check invincible/invulnerable/Red Essence bit C2/BEBC D0 95 BNE $95 [$BE53] A:0000 X:FC00 Y:0730 C2/BEBE BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0730 C2/BEC2 89 01 BIT #$01 A:0000 X:FC00 Y:0730 ;check monster invulnerability bit C2/BEC4 D0 8D BNE $8D [$BE53] A:0000 X:FC00 Y:0730 C2/BEC6 20 F4 C1 JSR $C1F4 [$C2:C1F4] A:0000 X:FC00 Y:0730 ;SPELLS/WEAPONS: Damage calculation C2/BEC9 A5 F9 LDA $F9 [$00:00F9] A:08FE X:2D00 Y:2D00 C2/BECB 89 06 BIT #$06 A:08FE X:2D00 Y:2D00 ;check if nullifying or inflicting C2/BECD F0 0C BEQ $0C [$BEDB] A:08FE X:2D00 Y:2D00 C2/BECF 89 04 BIT #$04 A:08FE X:2D00 Y:2D00 ;check if nullifying C2/BED1 D0 05 BNE $05 [$BED8] A:08FE X:2D00 Y:2D00 C2/BED3 20 8B C4 JSR $C48B [$C2:C48B] A:08FE X:2D00 Y:2D00 ;loads status inflict instructions C2/BED6 80 03 BRA $03 [$BEDB] A:08FE X:2D00 Y:2D00 C2/BED8 20 CF C4 JSR $C4CF [$C2:C4CF] A:08FE X:2D00 Y:2D00 ;loads status nullify instructions C2/BEDB 20 5E C5 JSR $C55E [$C2:C55E] A:08FE X:2D00 Y:2D00 ;ATTACKS/SPELLS/WEAPONS/ITEMS: Damage or Healing check if monster dead C2/BEDE A4 C0 LDY $C0 [$00:00C0] A:0000 X:FC00 Y:0730 ;load current HP C2/BEE0 D0 1A BNE $1A [$BEFC] A:0000 X:FC00 Y:0000 ;branch if not 0 C2/BEE2 A5 CE LDA $CE [$00:00CE] A:0000 X:FC00 Y:0000 C2/BEE4 D0 0A BNE $0A [$BEF0] A:0000 X:FC00 Y:0000 C2/BEE6 A6 CA LDX $CA [$00:00CA] A:0000 X:FC00 Y:0000 C2/BEE8 BF 1D 00 7E LDA $7E001D,x[$7E:FC1D] A:0000 X:FC00 Y:0000 ;load special attribute C2/BEEC 89 01 BIT #$01 A:0000 X:FC00 Y:0000 ;check hold bit (do not remove if HP < 0) C2/BEEE D0 0C BNE $0C [$BEFC] A:0000 X:FC00 Y:0000 ;branch if set C2/BEF0 20 C8 C5 JSR $C5C8 [$C2:C5C8] A:0000 X:FC00 Y:0000 ;JSR for monster defeated check if all monsters dead; if all dead, do not load flower bonus C2/BEF3 A5 F9 LDA $F9 [$00:00F9] A:0003 X:0010 Y:000E ;load all mortal statuses C2/BEF5 89 40 BIT #$40 A:0040 X:0010 Y:000E ;check death bit C2/BEF7 F0 03 BEQ $03 [$BEFC] A:0040 X:0010 Y:000E ;branch if not set C2/BEF9 20 A6 C6 JSR $C6A6 [$C2:C6A6] A:0040 X:0010 Y:000E ;load flower bonus C2/BEFC 4C 53 BE C2/BEFF C2 20 REP #$20 A:0000 X:0000 Y:0732 C2/BF01 60 RTS A:0000 X:0000 Y:0732 ================================================================= C2/BF9F 20 53 BE ================================================================= ITEMS: Revive C2/C011 A4 C6 LDY $C6 [$00:30C6] A:3000 X:0000 Y:7024 C2/C013 C8 INY A:3000 X:0000 Y:7024 C2/C014 C8 INY A:3000 X:0000 Y:7024 C2/C015 B6 00 LDX $00,y [$00:A024] A:3000 X:0000 Y:7024 C2/C017 86 CA STX $CA [$00:30CA] A:3000 X:0000 Y:7024 C2/C019 20 0A B3 JSR $B30A [$7F:B30A] A:3000 X:0000 Y:7024 ; load monster stats C2/C01C 85 CE STA $CE [$00:30CE] A:3000 X:0000 Y:7024 C2/C01E 20 41 C6 JSR $C641 [$7F:C641] A:3000 X:0000 Y:7024 ;Revive C2/C021 BF 44 00 7E LDA $7E0044,x[$7E:0044] A:3000 X:0000 Y:7024 C2/C025 29 BF AND #$BF A:3000 X:0000 Y:7024 C2/C027 09 80 ORA #$80 A:3000 X:0000 Y:7024 C2/C029 9F 44 00 7E STA $7E0044,x[$7E:0044] A:3000 X:0000 Y:7024 C2/C02D BF 11 00 7E LDA $7E0011,x[$7E:0011] A:3000 X:0000 Y:7024 C2/C031 9F 45 00 7E STA $7E0045,x[$7E:0045] A:3000 X:0000 Y:7024 C2/C035 BF 12 00 7E LDA $7E0012,x[$7E:0012] A:3000 X:0000 Y:7024 C2/C039 09 80 ORA #$80 A:3000 X:0000 Y:7024 C2/C03B 9F 46 00 7E STA $7E0046,x[$7E:0046] A:3000 X:0000 Y:7024 C2/C03F 60 RTS A:3000 X:0000 Y:7024 ================================================================= ITEMS: Restore FP C2/C040 A4 C6 LDY $C6 [$00:30C6] A:3000 X:0000 Y:7024 C2/C042 C8 INY A:3000 X:0000 Y:7024 C2/C043 C8 INY A:3000 X:0000 Y:7024 C2/C044 B6 00 LDX $00,y [$00:A024] A:3000 X:0000 Y:7024 C2/C046 BF 44 00 7E LDA $7E0044,x[$7E:0044] A:3000 X:0000 Y:7024 C2/C04A 29 BF AND #$BF A:3000 X:0000 Y:7024 C2/C04C 09 80 ORA #$80 A:3000 X:0000 Y:7024 C2/C04E 9F 44 00 7E STA $7E0044,x[$7E:0044] A:3000 X:0000 Y:7024 C2/C052 AF 0C FA 7E LDA $7EFA0C[$7E:FA0C] A:3000 X:0000 Y:7024 C2/C056 18 CLC A:3000 X:0000 Y:7024 C2/C057 65 FB ADC $FB [$00:30FB] A:3000 X:0000 Y:7024 C2/C059 CF 0D FA 7E CMP $7EFA0D[$7E:FA0D] A:3000 X:0000 Y:7024 C2/C05D 30 04 BMI $04 [$C063] A:3000 X:0000 Y:7024 C2/C05F AF 0D FA 7E LDA $7EFA0D[$7E:FA0D] A:3000 X:0000 Y:7024 C2/C063 8F 0C FA 7E STA $7EFA0C[$7E:FA0C] A:3000 X:0000 Y:7024 C2/C067 A5 FB LDA $FB [$00:30FB] A:3000 X:0000 Y:7024 C2/C069 9F 45 00 7E STA $7E0045,x[$7E:0045] A:3000 X:0000 Y:7024 C2/C06D A9 80 LDA #$80 A:3000 X:0000 Y:7024 C2/C06F 9F 46 00 7E STA $7E0046,x[$7E:0046] A:3000 X:0000 Y:7024 C2/C073 60 RTS A:3000 X:0000 Y:7024 C2/C074 A4 C6 LDY $C6 [$00:30C6] A:3000 X:0000 Y:7024 C2/C076 C8 INY A:3000 X:0000 Y:7024 C2/C077 C8 INY A:3000 X:0000 Y:7024 C2/C078 B6 00 LDX $00,y [$00:A024] A:3000 X:0000 Y:7024 C2/C07A A5 E9 LDA $E9 [$00:30E9] A:3000 X:0000 Y:7024 C2/C07C 18 CLC A:3000 X:0000 Y:7024 C2/C07D 7F 15 00 7E ADC $7E0015,x[$7E:0015] A:3000 X:0000 Y:7024 C2/C081 9F 15 00 7E STA $7E0015,x[$7E:0015] A:3000 X:0000 Y:7024 C2/C085 A5 EA LDA $EA [$00:30EA] A:3000 X:0000 Y:7024 C2/C087 18 CLC A:3000 X:0000 Y:7024 C2/C088 7F 16 00 7E ADC $7E0016,x[$7E:0016] A:3000 X:0000 Y:7024 C2/C08C 9F 16 00 7E STA $7E0016,x[$7E:0016] A:3000 X:0000 Y:7024 C2/C090 A5 EB LDA $EB [$00:30EB] A:3000 X:0000 Y:7024 C2/C092 18 CLC A:3000 X:0000 Y:7024 C2/C093 7F 17 00 7E ADC $7E0017,x[$7E:0017] A:3000 X:0000 Y:7024 C2/C097 9F 17 00 7E STA $7E0017,x[$7E:0017] A:3000 X:0000 Y:7024 C2/C09B A5 EC LDA $EC [$00:30EC] A:3000 X:0000 Y:7024 C2/C09D 18 CLC A:3000 X:0000 Y:7024 C2/C09E 7F 18 00 7E ADC $7E0018,x[$7E:0018] A:3000 X:0000 Y:7024 C2/C0A2 9F 18 00 7E STA $7E0018,x[$7E:0018] A:3000 X:0000 Y:7024 C2/C0A6 A5 ED LDA $ED [$00:30ED] A:3000 X:0000 Y:7024 C2/C0A8 18 CLC A:3000 X:0000 Y:7024 C2/C0A9 7F 19 00 7E ADC $7E0019,x[$7E:0019] A:3000 X:0000 Y:7024 C2/C0AD 9F 19 00 7E STA $7E0019,x[$7E:0019] A:3000 X:0000 Y:7024 C2/C0B1 60 RTS A:3000 X:0000 Y:7024 ================================================================= ITEMS: Restore HP NOTE: Final calculation starts at Direct Page $FB C2/C0B2 A4 C6 LDY $C6 [$00:00C6] A:0004 X:E5D0 Y:34AC C2/C0B4 C8 INY A:0004 X:E5D0 Y:34AC C2/C0B5 C8 INY A:0004 X:E5D0 Y:34AC C2/C0B6 B6 00 LDX $00,y [$00:34AC] A:0004 X:E5D0 Y:34AC C2/C0B8 F0 49 BEQ $49 [$C103] A:0004 X:E5D0 Y:34AC C2/C0BA 84 C6 STY $C6 [$00:00C6] A:0004 X:E5D0 Y:34AC C2/C0BC 86 CA STX $CA [$00:00CA] A:0004 X:E5D0 Y:34AC C2/C0BE BF 44 00 7E LDA $7E0044,x[$7E:E614] A:0004 X:E5D0 Y:34AC C2/C0C2 29 BF AND #$BF A:0004 X:E5D0 Y:34AC C2/C0C4 09 80 ORA #$80 A:0004 X:E5D0 Y:34AC C2/C0C6 9F 44 00 7E STA $7E0044,x[$7E:E614] A:0004 X:E5D0 Y:34AC C2/C0CA A5 F9 LDA $F9 [$00:00F9] A:0004 X:E5D0 Y:34AC ; loads Item's status flags C2/C0CC 89 06 BIT #$06 A:0004 X:E5D0 Y:34AC ; checks if meant to inflict (bit 1) or nullify (bit 2) C2/C0CE F0 0C BEQ $0C [$C0DC] A:0004 X:E5D0 Y:34AC C2/C0D0 89 04 BIT #$04 A:0004 X:E5D0 Y:34AC ; checks if nullify C2/C0D2 D0 05 BNE $05 [$C0D9] A:0004 X:E5D0 Y:34AC C2/C0D4 20 8B C4 JSR $C48B [$C0:C48B] A:0004 X:E5D0 Y:34AC ; loads status inflict instructions C2/C0D7 80 03 BRA $03 [$C0DC] A:0004 X:E5D0 Y:34AC C2/C0D9 20 CF C4 JSR $C4CF [$C0:C4CF] A:0004 X:E5D0 Y:34AC ; loads status nullify instructions C2/C0DC C2 20 REP #$20 A:0004 X:E5D0 Y:34AC ; enable 16-bit C2/C0DE A5 FB LDA $FB [$00:00FB] A:0004 X:E5D0 Y:34AC ; load infliction amount C2/C0E0 29 FF 00 AND #$00FF A:0004 X:E5D0 Y:34AC C2/C0E3 18 CLC A:0004 X:E5D0 Y:34AC C2/C0E4 7F 11 00 7E ADC $7E0011,x[$7E:E5E1] A:0004 X:E5D0 Y:34AC C2/C0E8 DF 13 00 7E CMP $7E0013,x[$7E:E5E3] A:0004 X:E5D0 Y:34AC ; compare to max HP C2/C0EC 30 04 BMI $04 [$C0F2] A:0004 X:E5D0 Y:34AC C2/C0EE BF 13 00 7E LDA $7E0013,x[$7E:E5E3] A:0004 X:E5D0 Y:34AC C2/C0F2 9F 11 00 7E STA $7E0011,x[$7E:E5E1] A:0004 X:E5D0 Y:34AC C2/C0F6 A5 FB LDA $FB [$00:00FB] A:0004 X:E5D0 Y:34AC C2/C0F8 09 00 80 ORA #$8000 A:0004 X:E5D0 Y:34AC C2/C0FB 9F 45 00 7E STA $7E0045,x[$7E:E615] A:0004 X:E5D0 Y:34AC C2/C0FF E2 20 SEP #$20 A:0004 X:E5D0 Y:34AC C2/C101 80 AF BRA $AF [$C0B2] A:0004 X:E5D0 Y:34AC C2/C103 60 RTS A:0004 X:E5D0 Y:34AC ================================================================= ITEMS: Restore all HP/FP (KeroKeroCola) C2/C104 C2 20 REP #$20 A:0000 X:0000 Y:1484 C2/C106 A2 00 00 LDX #$0000 A:0000 X:0000 Y:1484 C2/C109 9B TXY A:0000 X:0000 Y:1484 C2/C10A BF EA A1 C2 LDA $C2A1EA,x[$C2:A1EA] A:0000 X:0000 Y:1484 C2/C10E AA TAX A:0000 X:0000 Y:1484 C2/C10F BF 00 00 7E LDA $7E0000,x[$7E:0000] A:0000 X:0000 Y:1484 C2/C113 29 C0 00 AND #$00C0 A:0000 X:0000 Y:1484 C2/C116 D0 1D BNE $1D [$C135] A:0000 X:0000 Y:1484 C2/C118 BF 13 00 7E LDA $7E0013,x[$7E:0013] A:0000 X:0000 Y:1484 C2/C11C 9F 11 00 7E STA $7E0011,x[$7E:0011] A:0000 X:0000 Y:1484 C2/C120 09 00 80 ORA #$8000 A:0000 X:0000 Y:1484 C2/C123 9F 45 00 7E STA $7E0045,x[$7E:0045] A:0000 X:0000 Y:1484 C2/C127 BF 44 00 7E LDA $7E0044,x[$7E:0044] A:0000 X:0000 Y:1484 C2/C12B 29 BF FF AND #$FFBF A:0000 X:0000 Y:1484 C2/C12E 09 80 00 ORA #$0080 A:0000 X:0000 Y:1484 C2/C131 9F 44 00 7E STA $7E0044,x[$7E:0044] A:0000 X:0000 Y:1484 C2/C135 BB TYX A:0000 X:0000 Y:1484 C2/C136 E8 INX A:0000 X:0000 Y:1484 C2/C137 E8 INX A:0000 X:0000 Y:1484 C2/C138 E0 05 00 CPX #$0005 A:0000 X:0000 Y:1484 C2/C13B 30 CC BMI $CC [$C109] A:0000 X:0000 Y:1484 C2/C13D E2 20 SEP #$20 A:0000 X:0000 Y:1484 C2/C13F AF 0D FA 7E LDA $7EFA0D[$7E:FA0D] A:0000 X:0000 Y:1484 C2/C143 8F 0C FA 7E STA $7EFA0C[$7E:FA0C] A:0000 X:0000 Y:1484 C2/C147 60 RTS A:0000 X:0000 Y:1484 ================================================================= ITEMS: Raise Max FP C2/C148 AF 0D FA 7E ;Load max FP C2/C14C 18 ;Begin addition C2/C14D 65 FB ;Add amount C2/C14F C9 63 ;Compare 99 C2/C151 30 02 ;Jump if below 99 C2/C153 A9 63 ;Set Accumulator to 99 C2/C155 8F 0D FA 7E ;store to max FP C2/C159 8F 0C FA 7E ;store to current FP ================================================================= Evade/Magic Evade/Evasion DISASSEMBLER NOTE: This code first checks to see if hit chance is 100%, and if yes, skips this whole part about evasion. If not 100%, THEN it calculates evasion, and if the monster doesn't evade, THEN it calculates hit chance of the attack! What is a workout. C2/C19E A6 CA LDX $CA [$00:00CA] A:0001 X:FC80 Y:0730 C2/C1A0 A5 FA LDA $FA [$00:00FA] A:0001 X:FC80 Y:0730 ;load Hit % C2/C1A2 C9 64 CMP #$64 A:0063 X:FC80 Y:0730 ;check if 100% C2/C1A4 D0 03 BNE $03 [$C1A9] A:0063 X:FC80 Y:0730 ;branch if not 100% C2/C1A6 A9 01 LDA #$01 C2/C1A8 60 RTS C2/C1A9 A5 F8 LDA $F8 [$00:00F8] A:0063 X:FC80 Y:0730 ;load attack type (spell) C2/C1AB 89 20 BIT #$20 A:0001 X:FC80 Y:0730 ;check if checking for mortality protection C2/C1AD F0 0B BEQ $0B [$C1BA] A:0001 X:FC80 Y:0730 ;branch if not set C2/C1AF BF 41 00 7E LDA $7E0041,x[$7E:FCC1] A:0001 X:FC80 Y:0730 ;load special defense C2/C1B3 89 02 BIT #$02 A:0000 X:FC80 Y:0730 ;check mortality protection bit of target C2/C1B5 F0 03 BEQ $03 [$C1BA] A:0000 X:FC80 Y:0730 ;branch if not set C2/C1B7 A9 00 LDA #$00 A:0000 X:FC80 Y:0730 ;set miss flag C2/C1B9 60 RTS A:0000 X:FC80 Y:0730 C2/C1BA A5 CE LDA $CE [$00:00CE] A:0001 X:FC80 Y:0730 ;loads ??? C2/C1BC D0 2A BNE $2A [$C1E8] A:0000 X:FC80 Y:0730 ;...jumps to duplicate hit chance code... C2/C1BE A5 F8 LDA $F8 [$00:00F8] A:0000 X:FC80 Y:0730 ;load attack type C2/C1C0 89 01 BIT #$01 A:0001 X:FC80 Y:0730 ;check if physical attack C2/C1C2 F0 06 BEQ $06 [$C1CA] A:0001 X:FC80 Y:0730 ;branch if magic attack C2/C1C4 BF 1B 00 7E LDA $7E001B,x[$7E:FC9B] A:0001 X:FC80 Y:0730 ;load Evade % C2/C1C8 80 04 BRA $04 [$C1CE] A:0000 X:FC80 Y:0730 C2/C1CA BF 1C 00 7E LDA $7E001C,x[$7E:FC9C] A:0000 X:FC80 Y:0730 ;load Magic Evade % C2/C1CE 85 DA STA $DA [$00:00DA] A:0000 X:FC80 Y:0730 ;set to evade% C2/C1D0 A9 63 LDA #$63 A:0000 X:FC80 Y:0730 ;value 99 C2/C1D2 85 DB STA $DB [$00:00DB] A:0063 X:FC80 Y:0730 ;set value to 99 (out of 99) C2/C1D4 20 F2 B2 JSR $B2F2 [$C2:B2F2] A:0063 X:FC80 Y:0730 ;generate random number C2/C1D7 F0 03 BEQ $03 [$C1DC] A:0000 X:FC00 Y:0730 A9 00 ;set miss flag 60 C2/C1DC A5 FA LDA $FA [$00:00FA] A:0000 X:FC00 Y:0730 C2/C1DE 85 DA STA $DA [$00:00DA] A:0063 X:FC00 Y:0730 C2/C1E0 A9 63 LDA #$63 A:0063 X:FC00 Y:0730 C2/C1E2 85 DB STA $DB [$00:00DB] A:0063 X:FC00 Y:0730 C2/C1E4 20 F2 B2 JSR $B2F2 [$C2:B2F2] A:0063 X:FC00 Y:0730 ;generate random number 60 C2/C1E8 A5 FA 85 DA A9 63 85 DB 20 F2 B2 60 ================================================================= SPELLS/WEAPONS: Damage calculation C2/C1F4 A5 F8 LDA $F8 [$00:00F8] A:0000 X:FC00 Y:0730 C2/C1F6 10 06 BPL $06 [$C1FE] A:0001 X:FC00 Y:0730 A0 00 00 84 C2 60 C2/C1FE A5 F9 LDA $F9 [$00:00F9] A:0001 X:FC00 Y:0730 C2/C200 89 28 BIT #$28 A:0040 X:FC00 Y:0730 ;check for 9999 damage bits (for some reason it's two different bits?) C2/C202 F0 0D BEQ $0D [$C211] A:0040 X:FC00 Y:0730 A5 CC F0 06 A0 0F 27 84 C2 60 4C 47 C2 C2/C211 A5 F9 LDA $F9 [$00:00F9] A:0040 X:FC00 Y:0730 C2/C213 89 10 BIT #$10 A:0040 X:FC00 Y:0730 ;??? unknown attribute that divides C2/C215 F0 30 BEQ $30 [$C247] A:0040 X:FC00 Y:0730 A6 CA 89 01 F0 0C BF 13 00 7E 85 D0 BF 14 00 7E 80 0A BF 11 00 7E 85 D0 BF 12 00 7E 85 D1 A5 FB 85 D4 A2 C2 00 20 3F B3 A9 10 20 2E B3 4C 9C C2 C2/C247 20 AA C2 JSR $C2AA [$C2:C2AA] A:0040 X:FC00 Y:0730 ; Calculates defense C2/C24A A5 F8 LDA $F8 [$00:00F8] A:0000 X:FA80 Y:0730 ; load Magic special flags C2/C24C 89 02 BIT #$02 A:0001 X:FA80 Y:0730 ; check ignore defense bit C2/C24E D0 43 BNE $43 [$C293] A:0001 X:FA80 Y:0730 ; jump to $C293 C2/C250 A5 F9 LDA $F9 [$00:00F9] A:0001 X:FA80 Y:0730 C2/C252 89 40 BIT #$40 A:0040 X:FA80 Y:0730 ;checks if using weapon bit C2/C254 F0 29 BEQ $29 [$C27F] A:0040 X:FA80 Y:0730 ;If not set, jumps to $C27F C2/C256 A6 C8 LDX $C8 [$00:00C8] A:0040 X:FA80 Y:0730 C2/C258 BF 7A 00 7E LDA $7E007A,x[$7E:FAFA] A:0040 X:FA80 Y:0730 ;load RNG number for weapon C2/C25C 85 D6 STA $D6 [$00:00D6] A:0000 X:FA80 Y:0730 C2/C25E 0A ASL A A:0000 X:FA80 Y:0730 C2/C25F 85 DB STA $DB [$00:00DB] A:0000 X:FA80 Y:0730 C2/C261 64 DA STZ $DA [$00:00DA] A:0000 X:FA80 Y:0730 C2/C263 20 DD B2 JSR $B2DD [$C2:B2DD] A:0000 X:FA80 Y:0730 ;random number generator damage modifier; base damage starts with attacker's attack power C2/C266 85 D8 STA $D8 [$00:00D8] A:003A X:FB80 Y:0730 ;attack range RNG number C2/C268 64 D7 STZ $D7 [$00:00D7] A:003A X:FB80 Y:0730 C2/C26A 64 D9 STZ $D9 [$00:00D9] A:003A X:FB80 Y:0730 C2/C26C C2 20 REP #$20 A:003A X:FB80 Y:0730 C2/C26E A5 C2 LDA $C2 [$00:00C2] A:003A X:FB80 Y:0730 ;load base damage (attack power) C2/C270 38 SEC A:013D X:FB80 Y:0730 C2/C271 E5 D6 SBC $D6 [$00:00D6] A:013D X:FB80 Y:0730 ;subtract attack range value C2/C273 10 03 BPL $03 [$C278] A:0115 X:FB80 Y:0730 ;branch if greater than 0 C2/C278 18 CLC A:0115 X:FB80 Y:0730 C2/C279 65 D8 ADC $D8 [$00:00D8] A:0115 X:FB80 Y:0730 ;add RNG number from attack range (00 - AR*2) C2/C27B 85 C2 STA $C2 [$00:00C2] A:014F X:FB80 Y:0730 ;store as current damage C2/C27D E2 20 SEP #$20 A:014F X:FB80 Y:0730 C2/C27F C2 20 REP #$20 A:014F X:FB80 Y:0730 C2/C281 A5 C2 LDA $C2 [$00:00C2] A:014F X:FB80 Y:0730 ;load current damage C2/C283 F0 0C BEQ $0C [$C291] A:014F X:FB80 Y:0730 ;branch if at 0 C2/C285 38 SEC A:014F X:FB80 Y:0730 C2/C286 E5 C4 SBC $C4 [$00:00C4] A:014F X:FB80 Y:0730 ;subtract monster's DEF power C2/C288 F0 02 BEQ $02 [$C28C] A:00CD X:FB80 Y:0730 ;branch if at 0 C2/C28A 10 03 BPL $03 [$C28F] A:00CD X:FB80 Y:0730 ;branch if greater than 0 C2/C28C A9 01 00 LDA #$0001 A:00CD X:FB80 Y:0730 C2/C28F 85 C2 STA $C2 [$00:00C2] A:00CD X:FB80 Y:0730 ;store as current damage C2/C291 E2 20 SEP #$20 A:00CD X:FB80 Y:0730 C2/C293 20 08 C3 JSR $C308 [$C2:C308] A:00CD X:FB80 Y:0730 ;multiplying damage instructions (applicable only if attack is from a monster) C2/C296 20 82 C3 ;Modifies damage based on ailments/buffs C2/C299 20 22 C4 ;element resist instructions C2/C29C C2 20 C2/C29E A9 0F 27 ;Set A to 9999 C2/C2A1 C5 C2 ;compare final damage to 9999 C2/C2A3 10 02 ;If final damage under 9999, jump C2/C2A5 85 C2 ;Set A as final damage (9999) C2/C2A7 E2 20 C2/C2A9 60 ================================================================= SPELLS/WEAPONS: Calculates defense Check whether if spell using Mg.Defense or Phys.Defense to calculate final damage C2/C2AA A6 CA ;Load monster's properties C2/C2AC A5 F8 ; C2/C2AE 89 01 C2/C2B0 D0 0E ;jumps to $C2C0 C2/C2B2 BF 78 00 7E ;mg.defense byte 1 C2/C2B6 85 C4 C2/C2B8 BF 79 00 7E ;mg.defense byte 2 C2/C2BC 85 C5 C2/C2BE 80 0C C2/C2C0 BF 74 00 7E ;phys.defense byte 1 C2/C2C4 85 C4 C2/C2C6 BF 75 00 7E ;phys.defense byte 2 C2/C2CA 85 C5 C2/C2CC A6 C8 ;load ally's properties C2/C2CE A5 F8 C2/C2D0 89 01 ;checks bit 0 for check attack/defense of attacker/target C2/C2D2 D0 27 ;Jump to $C2FB A5 FB ;spell's power F0 18 ;Compares to 0. If spell power is 0, branch to $C2F0 A5 F8 ; 89 04 ;checks bit 2 for "is item" bit D0 18 ;jumps to $C2F6 BF 76 00 7E 18 65 FB 85 C2 BF 77 00 7E 69 00 85 C3 60 C2/C2F0 A0 00 00 ;Loads 0 84 C2 ;set final damage to 0 60 C2/C2F6 A4 FB ;loads spell's power 84 C2 ;sets it to final damage 60 C2/C2FB BF 72 00 7E 85 C2 BF 73 00 7E 85 C3 C2/C307 60 ================================================================= MONSTER: Attacks Multiplier C2/C308 A5 F9 LDA $F9 [$00:00F9] A:0001 X:FC00 Y:0730 C2/C30A 10 01 BPL $01 [$C30D] A:0082 X:FC00 Y:0730 C2/C30C 60 RTS A:0082 X:FC00 Y:0730 A9 00 EB A5 FB 29 07 0A AA C2/C316 7C 19 C3 ;Begin pointer 29 C3 ;x1 2A C3 ;x1.5 37 C3 ;x2 41 C3 ;x4 4C C3 ;x8 58 C3 ;x16 65 C3 ;x32 73 C3 ;x64 C2/C381 60 ;end ================================================================= Modifies damage based on ailments/buffs DISASSEMBLER NOTE: Due to how this is programmed, the following occur in damage modifiers from ailments/buffs in play. 1) Fear and Attack Up! status only calculated once (they do not stack, resulting in only x1.5 damage) 2) Mushroom, Defend command, and Defense Up! only calculated once (they do not stack, resulting in only 50% damage reduction) Check if Damage or Heal C2/C382 A5 F9 LDA $F9 [$00:00F9] A:0000 X:0000 Y:0730 ;Load attack flags C2/C384 89 01 BIT #$01 A:0040 X:0000 Y:0730 ;Check if Heal bit set C2/C386 F0 01 BEQ $01 [$C389] A:0040 X:0000 Y:0730 ;Jump if not 60 First begins with defenses of target C2/C389 A6 C8 LDX $C8 [$00:00C8] A:0040 X:0000 Y:0730 ;load attacker's attributes C2/C38B BF 40 00 7E LDA $7E0040,x[$7E:FAC0] A:0040 X:FA80 Y:0730 ;load ailment status C2/C38F 89 28 BIT #$28 A:0000 X:FA80 Y:0730 ;check if under Fear or Mushroom (...?! guess you could attack as Mushroom at one point) C2/C391 D0 2A BNE $2A [$C3BD] A:0000 X:FA80 Y:0730 Check ailment status for Mushroom C2/C393 A6 CA LDX $CA [$00:00CA] A:0000 X:FA80 Y:0730 ;loads target's stats C2/C395 BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:0000 X:FC00 Y:0730 ;load ailment status C2/C399 89 20 BIT #$20 A:0000 X:FC00 Y:0730 ;check if under Mushroom C2/C39B D0 20 BNE $20 [$C3BD] A:0000 X:FC00 Y:0730 Check if using Defend command C2/C39D BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0730 C2/C3A1 89 04 BIT #$04 A:0000 X:FC00 Y:0730 ;Check Defend bit C2/C3A3 D0 18 BNE $18 [$C3BD] A:0000 X:FC00 Y:0730 Check if calculating attacker/target phys.attack/phys.defense C2/C3A5 A5 F8 LDA $F8 [$00:00F8] A:0000 X:FC00 Y:0730 ;load special flags C2/C3A7 89 01 BIT #$01 A:0001 X:FC00 Y:0730 ;check if calculating attacker/target phys.attack/phys.defense C2/C3A9 F0 0A BEQ $0A [$C3B5] A:0001 X:FC00 Y:0730 ;If it's not (it's spell damage), jump to "Checks buff status for Mg.Defense Up!" Checks buff status for Physical Defense Up! C2/C3AB BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0001 X:FC00 Y:0730 C2/C3AF 89 40 BIT #$40 A:0000 X:FC00 Y:0730 C2/C3B1 D0 0A BNE $0A [$C3BD] A:0000 X:FC00 Y:0730 C2/C3B3 80 18 BRA $18 [$C3CD] A:0000 X:FC00 Y:0730 Checks buff status for Mg.Defense Up! C2/C3B5 BF 41 00 7E LDA $7E0041,x[$7E:008F] A:0000 X:004E Y:2500 C2/C3B9 89 20 BIT #$20 A:0000 X:004E Y:2500 C2/C3BB F0 10 BEQ $10 [$C3CD] A:0000 X:004E Y:2500 C2/C3BD C2 20 REP #$20 A:0000 X:004E Y:2500 C2/C3BF A5 C2 LDA $C2 [$00:00C2] A:0000 X:004E Y:2500 ;loads final damage C2/C3C1 F0 06 BEQ $06 [$C3C9] A:0000 X:004E Y:2500 ; C2/C3C3 4A LSR A A:0000 X:004E Y:2500 ;divide by 2 C2/C3C4 D0 03 BNE $03 [$C3C9] A:0000 X:004E Y:2500 ;jump if < 0 C2/C3C6 A9 01 00 LDA #$0001 A:0000 X:004E Y:2500 ;set damage to 1 C2/C3C9 85 C2 STA $C2 [$00:00C2] A:0000 X:004E Y:2500 ;Save final damage C2/C3CB E2 20 SEP #$20 A:0000 X:004E Y:2500 Calculation for attacker's status enhancements and debuffs C2/C3CD A6 CA LDX $CA [$00:00CA] A:0000 X:FC00 Y:0730 C2/C3CF BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:0000 X:FC00 Y:0730 C2/C3D3 89 08 BIT #$08 A:0000 X:FC00 Y:0730 ;checks for Fear bit C2/C3D5 D0 1A BNE $1A [$C3F1] A:0000 X:FC00 Y:0730 C2/C3D7 A6 C8 LDX $C8 [$00:00C8] A:0000 X:FC00 Y:0730 C2/C3D9 A5 F8 LDA $F8 [$00:00F8] A:0000 X:FA80 Y:0730 ;load special flags C2/C3DB 89 01 BIT #$01 A:0001 X:FA80 Y:0730 ;check if calculating attacker/target phys.attack/phys.defense C2/C3DD F0 0A BEQ $0A [$C3E9] A:0001 X:FA80 Y:0730 ;If it's not (it's spell damage), jump Checks buff status for Physical Attack Up! C2/C3DF BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:0001 X:FA80 Y:0730 C2/C3E3 89 10 BIT #$10 A:0000 X:FA80 Y:0730 ;check if phys.Attack up is set C2/C3E5 D0 0A BNE $0A [$C3F1] A:0000 X:FA80 Y:0730 ;If set jump to calculation C2/C3E7 80 14 BRA $14 [$C3FD] A:0000 X:FA80 Y:0730 ;If not jump over Checks buff status for Mg.Attack Up! BF 41 00 7E 89 08 F0 0C FINAL DAMAGE CALCULATION FOR FEAR/ATTACK UP! C2/C3F1 C2 20 REP #$20 A:0000 X:004E Y:2500 ;set 16-bit mode C2/C3F3 A5 C2 LDA $C2 [$00:00C2] A:0000 X:004E Y:2500 ;Load final damage value C2/C3F5 4A LSR A A:0000 X:004E Y:2500 ;Divide by 2 C2/C3F6 18 CLC A:0000 X:004E Y:2500 ;start addition C2/C3F7 65 C2 ADC $C2 [$00:00C2] A:0000 X:004E Y:2500 ;Add final damage value C2/C3F9 85 C2 STA $C2 [$00:00C2] A:0000 X:004E Y:2500 ;save final damage (x1.5 final product) C2/C3FB E2 20 SEP #$20 A:0000 X:004E Y:2500 ;set 8-bit mode Check if Sleep, and wake up if hit by physical damage (NOTE: Those afflicted with the Sleep status can be woken up by physical damage, but not spell damage) C2/C3FD A5 F8 LDA $F8 [$00:00F8] A:0000 X:FA80 Y:0730 ;load special flags C2/C3FF 89 01 BIT #$01 A:0001 X:FA80 Y:0730 ;check if calculating attacker/target phys.attack/phys.defense C2/C401 F0 1E BEQ $1E [$C421] A:0001 X:FA80 Y:0730 ;If it's not (it's spell damage), skip C2/C403 A6 CA LDX $CA [$00:00CA] A:0001 X:FA80 Y:0730 C2/C405 BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:0001 X:FC00 Y:0730 C2/C409 89 02 BIT #$02 A:0000 X:FC00 Y:0730 C2/C40B F0 14 BEQ $14 [$C421] A:0000 X:FC00 Y:0730 C2/C40D A9 00 LDA #$00 A:0000 X:004E Y:2500 C2/C40F 9F 40 00 7E STA $7E0040,x[$7E:008E] A:0000 X:004E Y:2500 C2/C413 9F 43 00 7E STA $7E0043,x[$7E:0091] A:0000 X:004E Y:2500 C2/C417 BF 44 00 7E LDA $7E0044,x[$7E:0092] A:0000 X:004E Y:2500 C2/C41B 29 F8 AND #$F8 A:0000 X:004E Y:2500 C2/C41D 9F 44 00 7E STA $7E0044,x[$7E:0092] A:0000 X:004E Y:2500 C2/C421 60 RTS A:0000 X:FC00 Y:0730 ================================================================= ATTACKS/SPELLS/WEAPONS/ITEMS: element resist instructions (This example uses Jump Shoes against an enemy with weakness and null to Jump) C2/C422 A5 FD LDA $FD [$00:00FD] A:0002 X:FA80 Y:0730 C2/C424 D0 01 BNE $01 [$C427] A:0080 X:FA80 Y:0730 60 C2/C427 A6 CA LDX $CA [$00:00CA] A:0080 X:FA80 Y:0730 C2/C429 A5 CE LDA $CE [$00:00CE] A:0080 X:FC00 Y:0730 C2/C42B D0 06 BNE $06 [$C433] A:0000 X:FC00 Y:0730 C2/C42D A5 FD LDA $FD [$00:00FD] A:0000 X:FC00 Y:0730 C2/C42F 9F 6A 00 7E STA $7E006A,x[$7E:FC6A] A:0080 X:FC00 Y:0730 C2/C433 BF 4C 00 7E LDA $7E004C,x[$7E:FC4C] A:0080 X:FC00 Y:0730 ;load ineffective elements C2/C437 25 FD AND $FD [$00:00FD] A:0080 X:FC00 Y:0730 C2/C439 45 FD EOR $FD [$00:00FD] A:0080 X:FC00 Y:0730 C2/C43B D0 1B BNE $1B [$C458] A:0000 X:FC00 Y:0730 C2/C43D A5 CF LDA $CF [$00:00CF] A:0000 X:FC00 Y:0730 C2/C43F F0 11 BEQ $11 [$C452] A:0001 X:FC00 Y:0730 ; C2/C441 A5 FD LDA $FD [$00:00FD] A:0001 X:FC00 Y:0730 C2/C443 89 80 BIT #$80 A:0080 X:FC00 Y:0730 ;check if element is Jump C2/C445 F0 0B BEQ $0B [$C452] A:0080 X:FC00 Y:0730 ;If not Jump, jump to 0 damage routine. (Jump, jump!) C2/C447 A6 C8 LDX $C8 [$00:00C8] A:0080 X:FC00 Y:0730 ;Load ally character stats C2/C449 BF 1E 00 7E LDA $7E001E,x[$7E:FA9E] A:0080 X:FA80 Y:0730 ;loads accessory slot C2/C44D C9 4C CMP #$4C A:004C X:FA80 Y:0730 ;checks for Jump Shoes accessory C2/C44F D0 01 BNE $01 [$C452] A:004C X:FA80 Y:0730 ;if not equipped, jump to 0 damage (damage null) routine C2/C451 60 RTS A:004C X:FA80 Y:0730 C2/C452 A0 00 00 LDY #$0000 A:0000 X:FC00 Y:0000 C2/C455 84 C2 STY $C2 [$00:00C2] A:0000 X:FC00 Y:0000 C2/C457 60 RTS A:0000 X:FC00 Y:0000 C2/C458 A5 CE LDA $CE [$00:00CE] A:6340 X:FC00 Y:0000 C2/C45A F0 1B BEQ $1B [$C477] A:6340 X:FC00 Y:0000 C2/C45C BF 4D 00 7E LDA $7E004D,x[$7E:FC4D] A:6340 X:FC00 Y:0000 ;load elemental strengths C2/C460 25 FD AND $FD [$00:00FD] A:6340 X:FC00 Y:0000 C2/C462 45 FD EOR $FD [$00:00FD] A:6340 X:FC00 Y:0000 C2/C464 D0 10 BNE $10 [$C476] A:6340 X:FC00 Y:0000 C2/C466 C2 20 REP #$20 A:6340 X:FC00 Y:0000 C2/C468 A5 C2 LDA $C2 [$00:00C2] A:6340 X:FC00 Y:0000 C2/C46A F0 06 BEQ $06 [$C472] A:6340 X:FC00 Y:0000 C2/C46C 4A LSR A A:6340 X:FC00 Y:0000 ;divide by 2 C2/C46D D0 03 BNE $03 [$C472] A:6340 X:FC00 Y:0000 C2/C46F A9 01 00 LDA #$0001 A:6340 X:FC00 Y:0000 C2/C472 85 C2 STA $C2 [$00:00C2] A:6340 X:FC00 Y:0000 C2/C474 E2 20 SEP #$20 A:6340 X:FC00 Y:0000 C2/C476 60 RTS A:6340 X:FC00 Y:0000 C2/C477 BF 4D 00 7E LDA $7E004D,x[$7E:8C7B] A:6340 X:FC00 Y:0000 ;load elemental strengths C2/C47B 25 FD AND $FD [$00:00FD] A:6340 X:FC00 Y:0000 C2/C47D 45 FD EOR $FD [$00:00FD] A:6340 X:FC00 Y:0000 C2/C47F D0 09 BNE $09 [$C48A] A:6340 X:FC00 Y:0000 C2/C481 C2 20 REP #$20 A:6340 X:FC00 Y:0000 C2/C483 A5 C2 LDA $C2 [$00:00C2] A:6340 X:FC00 Y:0000 C2/C485 0A ASL A A:6340 X:FC00 Y:0000 C2/C486 85 C2 STA $C2 [$00:00C2] A:6340 X:FC00 Y:0000 C2/C488 E2 20 SEP #$20 A:6340 X:FC00 Y:0000 C2/C48A 60 RTS A:6340 X:FC00 Y:0000 ================================================================= SPELLS/ITEMS: Inflict item statuses NOTE: Due to how this is programmed, if the character has invincible then they cannot gain UP! buffs. Start C2/C48B A6 CA LDX $CA [$00:00CA] A:000A X:2400 Y:2400 C2/C48D A5 FE LDA $FE [$00:00FE] A:000A X:2400 Y:2400 C2/C48F F0 2F BEQ $2F [$C4C0] A:000A X:2400 Y:2400 C2/C491 5F 4E 00 7E EOR $7E004E,x[$7E:244E] A:000A X:2400 Y:2400 C2/C495 25 FE AND $FE [$00:00FE] A:000A X:2400 Y:2400 C2/C497 F0 27 BEQ $27 [$C4C0] A:000A X:2400 Y:2400 C2/C499 DF 40 00 7E CMP $7E0040,x[$7E:2440] A:000A X:2400 Y:2400 C2/C49D 90 21 BCC $21 [$C4C0] A:000A X:2400 Y:2400 C2/C49F 9F 40 00 7E STA $7E0040,x[$7E:2440] A:000A X:2400 Y:2400 C2/C4A3 BF 41 00 7E LDA $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4A7 29 FB AND #$FB A:000A X:2400 Y:2400 ;removes Defend C2/C4A9 9F 41 00 7E STA $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4AD A9 04 LDA #$04 A:000A X:2400 Y:2400 ;timer for status ailments C2/C4AF 9F 43 00 7E STA $7E0043,x[$7E:2443] A:000A X:2400 Y:2400 C2/C4B3 BF 44 00 7E LDA $7E0044,x[$7E:2444] A:000A X:2400 Y:2400 C2/C4B7 29 F8 AND #$F8 A:000A X:2400 Y:2400 C2/C4B9 9F 44 00 7E STA $7E0044,x[$7E:2444] A:000A X:2400 Y:2400 C2/C4BD 20 04 C5 JSR $C504 [$C2:C504] A:000A X:2400 Y:2400 ;Loads statuses, and disables buttons depending on the status C2/C4C0 A5 FF LDA $FF [$00:00FF] A:000A X:2400 Y:2400 C2/C4C2 29 78 AND #$78 A:000A X:2400 Y:2400 C2/C4C4 F0 08 BEQ $08 [$C4CE] A:000A X:2400 Y:2400 C2/C4C6 1F 41 00 7E ORA $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4CA 9F 41 00 7E STA $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4CE 60 RTS A:000A X:2400 Y:2400 ITEMS: Nullify item statuses C2/C4CF A6 CA LDX $CA [$00:00CA] A:000A X:2400 Y:2400 C2/C4D1 A5 FE LDA $FE [$00:00FE] A:000A X:2400 Y:2400 C2/C4D3 F0 1C BEQ $1C [$C4F1] A:000A X:2400 Y:2400 C2/C4D5 5F 40 00 7E EOR $7E0040,x[$7E:2440] A:000A X:2400 Y:2400 C2/C4D9 3F 40 00 7E AND $7E0040,x[$7E:2440] A:000A X:2400 Y:2400 C2/C4DD 9F 40 00 7E STA $7E0040,x[$7E:2440] A:000A X:2400 Y:2400 C2/C4E1 A9 00 LDA #$00 A:000A X:2400 Y:2400 C2/C4E3 9F 43 00 7E STA $7E0043,x[$7E:2443] A:000A X:2400 Y:2400 C2/C4E7 BF 44 00 7E LDA $7E0044,x[$7E:2444] A:000A X:2400 Y:2400 C2/C4EB 29 F8 AND #$F8 A:000A X:2400 Y:2400 C2/C4ED 9F 44 00 7E STA $7E0044,x[$7E:2444] A:000A X:2400 Y:2400 C2/C4F1 A5 FF LDA $FF [$00:00FF] A:000A X:2400 Y:2400 C2/C4F3 29 78 AND #$78 A:000A X:2400 Y:2400 C2/C4F5 F0 0C BEQ $0C [$C503] A:000A X:2400 Y:2400 C2/C4F7 5F 41 00 7E EOR $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4FB 3F 41 00 7E AND $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C4FF 9F 41 00 7E STA $7E0041,x[$7E:2441] A:000A X:2400 Y:2400 C2/C503 60 RTS A:000A X:2400 Y:2400 ================================================================= Loads statuses, and disables ABXY buttons depending on the status C2/C504 ================================================================= ATTACKS/SPELLS/WEAPONS/ITEMS: Damage or Healing C2/C55E C2 20 REP #$20 A:2740 X:FC00 Y:0730 C2/C560 A6 CA LDX $CA [$00:00CA] A:2740 X:FC00 Y:0730 C2/C562 A5 F9 LDA $F9 [$00:00F9] A:2740 X:FC00 Y:0730 C2/C564 89 01 00 BIT #$0001 A:6340 X:FC00 Y:0730 ;Check if Heal bit set C2/C567 D0 1A BNE $1A [$C583] A:6340 X:FC00 Y:0730 ;Jump to Healing routine C2/C569 BF 11 00 7E LDA $7E0011,x[$7E:FC11] A:6340 X:FC00 Y:0730 ;load monster's current HP C2/C56D 9F 35 00 7E STA $7E0035,x[$7E:FC35] A:0320 X:FC00 Y:0730 C2/C571 38 SEC A:0320 X:FC00 Y:0730 C2/C572 E5 C2 SBC $C2 [$00:00C2] A:0320 X:FC00 Y:0730 ;subtract final damage C2/C574 10 03 BPL $03 [$C579] A:0253 X:FC00 Y:0730 ;branch if > 0 C2/C576 A9 00 00 C2/C579 9F 11 00 7E STA $7E0011,x[$7E:FC11] A:0253 X:FC00 Y:0730 ;store as current HP C2/C57D 85 C0 STA $C0 [$00:00C0] A:0253 X:FC00 Y:0730 C2/C57F A5 C2 LDA $C2 [$00:00C2] A:0253 X:FC00 Y:0730 ;load final damage C2/C581 80 23 BRA $23 [$C5A6] A:00CD X:FC00 Y:0730 Healing routine --------------- C2/C583 A9 00 00 LDA #$0000 A:00F5 X:2500 Y:2500 C2/C586 9F 35 00 7E STA $7E0035,x[$7E:2535] A:00F5 X:2500 Y:2500 C2/C58A BF 11 00 7E LDA $7E0011,x[$7E:2511] A:00F5 X:2500 Y:2500 C2/C58E 18 CLC A:00F5 X:2500 Y:2500 C2/C58F 65 C2 ADC $C2 [$00:00C2] A:00F5 X:2500 Y:2500 C2/C591 DF 13 00 7E CMP $7E0013,x[$7E:2513] A:00F5 X:2500 Y:2500 C2/C595 30 04 BMI $04 [$C59B] A:00F5 X:2500 Y:2500 C2/C597 BF 13 00 7E LDA $7E0013,x[$7E:2513] A:00F5 X:2500 Y:2500 C2/C59B 9F 11 00 7E STA $7E0011,x[$7E:2511] A:00F5 X:2500 Y:2500 C2/C59F 85 C0 STA $C0 [$00:00C0] A:00F5 X:2500 Y:2500 C2/C5A1 A5 C2 LDA $C2 [$00:00C2] A:00F5 X:2500 Y:2500 C2/C5A3 09 00 80 ORA #$8000 A:00F5 X:2500 Y:2500 ;7E:0046 bit 7 = displays green digits. C2/C5A6 9F 45 00 7E STA $7E0045,x[$7E:2545] A:00F5 X:2500 Y:2500 ;store as damage digits to show C2/C5AA A5 CE LDA $CE [$00:00CE] A:00F5 X:2500 Y:2500 C2/C5AC 89 FF 00 BIT #$00FF A:00F5 X:2500 Y:2500 ;check byte 2 C2/C5AF D0 14 BNE $14 [$C5C5] A:00F5 X:2500 Y:2500 ;branch if any bits set C2/C5B1 A5 C8 LDA $C8 [$00:00C8] A:0100 X:FC00 Y:0730 C2/C5B3 9F 62 00 7E STA $7E0062,x[$7E:FC62] A:FB80 X:FC00 Y:0730 ; ??? C2/C5B7 AD 2A 07 LDA $072A [$00:072A] A:FB80 X:FC00 Y:0730 C2/C5BA 9F 66 00 7E STA $7E0066,x[$7E:FC66] A:0002 X:FC00 Y:0730 ; ??? C2/C5BE AD 2C 07 LDA $072C [$00:072C] A:0002 X:FC00 Y:0730 C2/C5C1 9F 68 00 7E STA $7E0068,x[$7E:FC68] A:0000 X:FC00 Y:0730 ; ??? C2/C5C5 E2 20 SEP #$20 A:0000 X:FC00 Y:0730 C2/C5C7 60 RTS A:0000 X:FC00 Y:0730 ================================================================= JSR for monster defeated C2/C5C8 08 PHP A:0000 X:FC00 Y:0000 C2/C5C9 E2 20 SEP #$20 A:0000 X:FC00 Y:0000 C2/C5CB A6 CA LDX $CA [$00:00CA] A:0000 X:FC00 Y:0000 C2/C5CD BF 00 00 7E LDA $7E0000,x[$7E:FC00] A:0000 X:FC00 Y:0000 C2/C5D1 09 40 ORA #$40 A:0000 X:FC00 Y:0000 C2/C5D3 9F 00 00 7E STA $7E0000,x[$7E:FC00] A:0040 X:FC00 Y:0000 C2/C5D7 BF 40 00 7E LDA $7E0040,x[$7E:FC40] A:0040 X:FC00 Y:0000 C2/C5DB 9F 30 00 7E STA $7E0030,x[$7E:FC30] A:0000 X:FC00 Y:0000 C2/C5DF BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0000 C2/C5E3 9F 31 00 7E STA $7E0031,x[$7E:FC31] A:0000 X:FC00 Y:0000 C2/C5E7 BF 43 00 7E LDA $7E0043,x[$7E:FC43] A:0000 X:FC00 Y:0000 C2/C5EB 9F 33 00 7E STA $7E0033,x[$7E:FC33] A:0000 X:FC00 Y:0000 C2/C5EF BF 44 00 7E LDA $7E0044,x[$7E:FC44] A:0000 X:FC00 Y:0000 C2/C5F3 9F 34 00 7E STA $7E0034,x[$7E:FC34] A:0080 X:FC00 Y:0000 C2/C5F7 A9 00 LDA #$00 A:0080 X:FC00 Y:0000 C2/C5F9 9F 40 00 7E STA $7E0040,x[$7E:FC40] A:0000 X:FC00 Y:0000 C2/C5FD 9F 41 00 7E STA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0000 C2/C601 9F 42 00 7E STA $7E0042,x[$7E:FC42] A:0000 X:FC00 Y:0000 C2/C605 BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0000 C2/C609 09 80 ORA #$80 A:0000 X:FC00 Y:0000 C2/C60B 9F 41 00 7E STA $7E0041,x[$7E:FC41] A:0080 X:FC00 Y:0000 C2/C60F A5 CE LDA $CE [$00:00CE] A:0080 X:FC00 Y:0000 C2/C611 D0 1F BNE $1F [$C632] A:0000 X:FC00 Y:0000 C2/C613 BF 11 00 7E LDA $7E0011,x[$7E:FC11] A:0000 X:FC00 Y:0000 C2/C617 9F 35 00 7E STA $7E0035,x[$7E:FC35] A:0000 X:FC00 Y:0000 C2/C61B BF 12 00 7E LDA $7E0012,x[$7E:FC12] A:0000 X:FC00 Y:0000 C2/C61F 9F 36 00 7E STA $7E0036,x[$7E:FC36] A:0000 X:FC00 Y:0000 C2/C623 A9 00 LDA #$00 A:0000 X:FC00 Y:0000 C2/C625 9F 11 00 7E STA $7E0011,x[$7E:FC11] A:0000 X:FC00 Y:0000 C2/C629 9F 12 00 7E STA $7E0012,x[$7E:FC12] A:0000 X:FC00 Y:0000 C2/C62D 28 PLP A:0000 X:FC00 Y:0000 C2/C62E 20 8D B2 JSR $B28D [$C2:B28D] A:0000 X:FC00 Y:0000 ;MONSTER: Vital status of all monsters on the field (for checking flower bonus) C2/C631 60 RTS A:0001 X:0010 Y:000E ================================================================= Revive (Used for items and ??? called at C2/A62F, C2/BF5D, C2/C01E) C2/C641 08 PHP A:3000 X:0000 Y:7024 C2/C642 E2 20 SEP #$20 A:3000 X:0000 Y:7024 C2/C644 A6 CA LDX $CA [$00:30CA] A:3000 X:0000 Y:7024 C2/C646 BF 00 00 7E LDA $7E0000,x[$7E:0000] A:3000 X:0000 Y:7024 C2/C64A 29 3F AND #$3F A:3000 X:0000 Y:7024 C2/C64C 9F 00 00 7E STA $7E0000,x[$7E:0000] A:3000 X:0000 Y:7024 C2/C650 A9 00 LDA #$00 A:3000 X:0000 Y:7024 C2/C652 9F 44 00 7E STA $7E0044,x[$7E:0044] A:3000 X:0000 Y:7024 C2/C656 A5 CE LDA $CE [$00:30CE] A:3000 X:0000 Y:7024 C2/C658 D0 32 BNE $32 [$C68C] A:3000 X:0000 Y:7024 Monsters C2/C65A A9 00 LDA #$00 A:3000 X:0000 Y:7024 C2/C65C 9F 52 00 7E STA $7E0052,x[$7E:0052] A:3000 X:0000 Y:7024 C2/C660 9F 53 00 7E STA $7E0053,x[$7E:0053] A:3000 X:0000 Y:7024 C2/C664 9F 56 00 7E STA $7E0056,x[$7E:0056] A:3000 X:0000 Y:7024 C2/C668 9F 57 00 7E STA $7E0057,x[$7E:0057] A:3000 X:0000 Y:7024 C2/C66C 9F 41 00 7E STA $7E0041,x[$7E:0041] A:3000 X:0000 Y:7024 C2/C670 BF 1E 00 7E LDA $7E001E,x[$7E:001E] A:3000 X:0000 Y:7024 C2/C674 29 03 AND #$03 A:3000 X:0000 Y:7024 ;set monster invulnerable + mortality protection C2/C676 9F 41 00 7E STA $7E0041,x[$7E:0041] A:3000 X:0000 Y:7024 C2/C67A BF 13 00 7E LDA $7E0013,x[$7E:0013] A:3000 X:0000 Y:7024 C2/C67E 9F 11 00 7E STA $7E0011,x[$7E:0011] A:3000 X:0000 Y:7024 C2/C682 BF 14 00 7E LDA $7E0014,x[$7E:0014] A:3000 X:0000 Y:7024 C2/C686 9F 12 00 7E STA $7E0012,x[$7E:0012] A:3000 X:0000 Y:7024 C2/C68A 28 PLP A:3000 X:0000 Y:7024 C2/C68B 60 RTS A:3000 X:0000 Y:7024 Allies C2/C68C BF 4F 00 7E LDA $7E004F,x[$7E:004F] A:3000 X:0000 Y:7024 C2/C690 9F 41 00 7E STA $7E0041,x[$7E:0041] A:3000 X:0000 Y:7024 C2/C694 BF 13 00 7E LDA $7E0013,x[$7E:0013] A:3000 X:0000 Y:7024 C2/C698 9F 11 00 7E STA $7E0011,x[$7E:0011] A:3000 X:0000 Y:7024 C2/C69C BF 14 00 7E LDA $7E0014,x[$7E:0014] A:3000 X:0000 Y:7024 C2/C6A0 9F 12 00 7E STA $7E0012,x[$7E:0012] A:3000 X:0000 Y:7024 C2/C6A4 28 PLP A:3000 X:0000 Y:7024 C2/C6A5 60 RTS A:3000 X:0000 Y:7024 ================================================================= Flower Bonus: Load status attributes C2/C6A6 AD 00 07 LDA $0700 [$00:0700] A:0040 X:0010 Y:000E C2/C6A9 89 22 BIT #$22 A:0000 X:0010 Y:000E C2/C6AB F0 01 BEQ $01 [$C6AE] A:0000 X:0010 Y:000E C2/C6AE A6 C8 LDX $C8 [$00:00C8] A:0000 X:0010 Y:000E C2/C6B0 BF 44 00 7E LDA $7E0044,x[$7E:FB44] A:0000 X:FB00 Y:000E C2/C6B4 29 2F AND #$2F A:0000 X:FB00 Y:000E ;clear double-turn bit C2/C6B6 9F 44 00 7E STA $7E0044,x[$7E:FB44] A:0000 X:FB00 Y:000E C2/C6BA A9 00 LDA #$00 A:0000 X:FB00 Y:000E C2/C6BC EB XBA A:0000 X:FB00 Y:000E C2/C6BD A6 CA LDX $CA [$00:00CA] A:0000 X:FB00 Y:000E ;Load monster's stats C2/C6BF BF 01 00 7E LDA $7E0001,x[$7E:FC01] A:0000 X:FC00 Y:000E ;load current monster byte C2/C6C3 A8 TAY A:0041 X:FC00 Y:000E ;set as offset pointer C2/C6C4 AF 22 00 F9 LDA $F90022[$F9:0022] A:0041 X:FC00 Y:0041 ;load from pointer table C2/C6C8 85 D4 STA $D4 [$00:00D4] A:0044 X:FC00 Y:0041 C2/C6CA AF 23 00 F9 LDA $F90023[$F9:0023] A:0044 X:FC00 Y:0041 ;load from pointer table C2/C6CE 85 D5 STA $D5 [$00:00D5] A:00BB X:FC00 Y:0041 C2/C6D0 A2 F9 00 LDX #$00F9 A:00BB X:FC00 Y:0041 C2/C6D3 86 D6 STX $D6 [$00:00D6] A:00BB X:00F9 Y:0041 C2/C6D5 B7 D4 LDA [$D4],y[$F9:BB85] A:00BB X:00F9 Y:0041 ;load flower bonus C2/C6D7 85 D4 STA $D4 [$00:00D4] A:0054 X:00F9 Y:0041 C2/C6D9 64 D5 STZ $D5 [$00:00D5] A:0054 X:00F9 Y:0041 C2/C6DB A5 D4 LDA $D4 [$00:00D4] A:0054 X:00F9 Y:0041 C2/C6DD 29 F0 AND #$F0 A:0054 X:00F9 Y:0041 ;isolate odds C2/C6DF 4A LSR A A:0050 X:00F9 Y:0041 ;move to lower nibble C2/C6E0 4A LSR A A:0028 X:00F9 Y:0041 C2/C6E1 4A LSR A A:0014 X:00F9 Y:0041 C2/C6E2 4A LSR A A:000A X:00F9 Y:0041 C2/C6E3 AA TAX A:0005 X:00F9 Y:0041 C2/C6E4 BF 6E C7 C2 LDA $C2C76E,x[$C2:C773] A:0005 X:0005 Y:0041 C2/C6E8 F0 0B BEQ $0B [$C6F5] A:0032 X:0005 Y:0041 C2/C6EA 85 DA STA $DA [$00:00DA] A:0032 X:0005 Y:0041 C2/C6EC A9 64 LDA #$64 A:0032 X:0005 Y:0041 C2/C6EE 85 DB STA $DB [$00:00DB] A:0064 X:0005 Y:0041 C2/C6F0 20 F2 B2 JSR $B2F2 [$C2:B2F2] A:0064 X:0005 Y:0041 ;generate random number C2/C6F3 D0 0D BNE $0D [$C702] A:0001 X:0005 Y:0041 ;branch if generated number not 0 C2/C6F5 A6 C8 C2/C6F7 BF 44 00 7E C2/C6FB 29 DF C2/C6FD 9F 44 00 7E C2/C701 60 C2/C702 A6 C8 LDX $C8 [$00:00C8] A:0001 X:0005 Y:0041 C2/C704 BF 44 00 7E LDA $7E0044,x[$7E:FB44] A:0001 X:FB00 Y:0041 C2/C708 09 20 ORA #$20 A:0000 X:FB00 Y:0041 C2/C70A 9F 44 00 7E STA $7E0044,x[$7E:FB44] A:0020 X:FB00 Y:0041 C2/C70E 9B TXY A:0020 X:FB00 Y:0041 C2/C70F A6 CA LDX $CA [$00:00CA] A:0020 X:FB00 Y:FB00 C2/C711 A9 00 LDA #$00 A:0020 X:FC00 Y:FB00 C2/C713 EB XBA A:0000 X:FC00 Y:FB00 C2/C714 A5 D4 LDA $D4 [$00:00D4] A:0000 X:FC00 Y:FB00 ;load flower bonus C2/C716 29 0F AND #$0F A:0054 X:FC00 Y:FB00 ;isolate flower type C2/C718 9F 2D 00 7E STA $7E002D,x[$7E:FC2D] A:0004 X:FC00 Y:FB00 ;store flower type C2/C71C 0A ASL A A:0004 X:FC00 Y:FB00 C2/C71D AA TAX A:0008 X:FC00 Y:FB00 C2/C71E 7C 21 C7 JMP ($C721,x)[$C2:C75B] A:0008 X:0008 Y:FB00 ;jump to flower type's function Flower Bonus: Function Pointers C2/C721 2D C7 ... C2/C723 2E C7 Attack Up! C2/C725 3A C7 Defense Up! C2/C727 46 C7 HPMax! C2/C729 5B C7 Once Again! C2/C72B 67 C7 Lucky! Flower Bonus: Once Again! C2/C75B BB TYX A:0008 X:0008 Y:FB00 C2/C75C BF 44 00 7E LDA $7E0044,x[$7E:FB44] A:0008 X:FB00 Y:FB00 ;load turn C2/C760 09 10 ORA #$10 A:0020 X:FB00 Y:FB00 ;set bit for double-turn C2/C762 9F 44 00 7E STA $7E0044,x[$7E:FB44] A:0030 X:FB00 Y:FB00 C2/C766 60 RTS A:0030 X:FB00 Y:FB00 ;end Flower Bonus: Lucky! C2/C767 A9 01 C2/C769 8F 1F FA 7E ;7E:FA1F C2/C76D 60 ----------------------------------------------------------------- Flower Bonus chance table (increments of 10s up to 100% chance) C2/C76F 00 C2/C770 0A ;10% 14 ;20% 1E ;30% 28 ;40% 32 ;50% 3C ;60% 46 ;70% 50 ;80% 5A ;90% 64 ;100% ----------------------------------------------------------------- ...From C2/A0C4 ... (JSR $C779) AILMENT: check status ailments (this example uses slot 2) X:FB00 (slot 2) C2/C779 E2 20 86 CA 20 0A B3 ;Load monster's stats C2/C780 85 CE STA $CE [$00:00CE] A:0001 X:FB00 Y:2580 C2/C782 BF 00 00 7E LDA $7E0000,x[$7E:FB00] A:0001 X:FB00 Y:2580 C2/C786 30 0D BMI $0D [$C795] A:0000 X:FB00 Y:2580 ;branch if minus C2/C788 BF 41 00 7E LDA $7E0041,x[$7E:FB41] A:0000 X:FB00 Y:2580 C2/C78C 29 FB AND #$FB A:0000 X:FB00 Y:2580 C2/C78E 9F 41 00 7E STA $7E0041,x[$7E:FB41] A:0000 X:FB00 Y:2580 C2/C792 20 98 C7 JSR $C798 [$C2:C798] A:0000 X:FB00 Y:2580 C2/C795 C2 20 REP #$20 ;set 16-bit A C2/C797 60 RTS ;end C2/C798 BF 40 00 7E LDA $7E0040,x[$7E:FB40] A:0000 X:FB00 Y:2580 ;load status ailment C2/C79C D0 0E BNE $0E [$C7AC] A:0020 X:FB00 Y:2580 ;branch if there is an ailment set (is not equal to 0) C2/C79D BF 44 00 7E LDA ;check C2/C7A0 29 F0 0D ;isolate C2/C7A3 24 07 ;test bits C2/C7A7 9F 44 00 7E STA ;write C2/C7AB 60 RTS ;end C2/C7AC BF 43 00 7E LDA $7E0043,x[$7E:FB43] A:0020 X:FB00 Y:2580 ;how long the ailment lasts for C2/C7B0 3A DEC A A:0003 X:FB00 Y:2580 ;decrease by 1 turn C2/C7B1 9F 43 00 7E STA $7E0043,x[$7E:FB43] A:0002 X:FB00 Y:2580 ;write back to memory C2/C7B5 10 12 BPL $12 [$C7C9] A:0002 X:FB00 Y:2580 ;branch if greater than 0 A9 00 ;set accumulator to absolute value of 0 9F 40 00 7E ;write to ailment status (clear status) 9F 43 00 7E ;write to reset number of turns status ailment lasts AD 24 07 9F 44 00 7E ;write to 44 60 C2/C7C9 BF 40 00 7E LDA $7E0040,x[$7E:FB40] A:0002 X:FB00 Y:2580 ;check status ailment C2/C7CD 89 8C BIT #$8C A:0020 X:FB00 Y:2580 ;check if Poison, Fear, Invincible bit set C2/C7CF F0 0F BEQ $0F [$C7E0] A:0020 X:FB00 Y:2580 ;branch if not equal BF 44 00 7E LDA ;load 29 F0 0D ;isolate 24 07 BIT ;test bits 9F 44 00 7E STA ;write to 80 2A ;branch to C80A (Checks for Poison/Mushroom) C2/C7E0 89 40 BIT #$40 A:0020 X:FB00 Y:2580 ;check if Scarecrow bit set C2/C7E2 F0 0E BEQ $0E [$C7F2] A:0020 X:FB00 Y:2580 ;branch if not equal BF 44 00 7E LDA ;load 29 F0 0D ;isolate 24 07 BIT ;test bits 9F 44 00 7E STA ;write to 60 ;end C2/C7F2 89 22 BIT #$22 A:0020 X:FB00 Y:2580 ;check if Sleep, Mushroom bit set C2/C7F4 F0 02 BEQ $02 [$C7F8] A:0020 X:FB00 Y:2580 ;branch if not equal C2/C7F6 80 12 BRA $12 [$C80A] A:0020 X:FB00 Y:2580 ;always branch 89 01 ;check if Mute bit set F0 0E [$C80A] ;jump 14 bytes BF 44 00 7E ;load 29 FA 0D ;isolate 24 07 ;test bits 9F 44 00 7E STA ;write to 60 RTS ;end C2/C80A BF 40 00 7E LDA $7E0040,x[$7E:FB40] A:0020 X:FB00 Y:2580 ;load status ailment C2/C80E 89 24 BIT #$24 A:0020 X:FB00 Y:2580 ;check if Mushroom, Poison bit set C2/C810 D0 01 BNE $01 [$C813] A:0020 X:FB00 Y:2580 ;branch if set C2/C812 60 RTS ;end C2/C813 BF 11 00 7E LDA $7E0011,x[$7E:FB11] A:0020 X:FB00 Y:2580 ;load current HP C2/C817 85 E0 STA $E0 [$00:00E0] A:00D1 X:FB00 Y:2580 C2/C819 BF 12 00 7E LDA $7E0012,x[$7E:FB12] A:00D1 X:FB00 Y:2580 ;load max HP C2/C81D 85 E1 STA $E1 [$00:00E1] A:0000 X:FB00 Y:2580 C2/C81F A4 E0 LDY $E0 [$00:00E0] A:0000 X:FB00 Y:2580 C2/C821 8C 04 42 STY $4204 [$00:4204] A:0000 X:FB00 Y:00D1 ;set max HP as dividend C2/C824 A9 0A LDA #$0A A:0000 X:FB00 Y:00D1 ;load constant 10 C2/C826 8D 06 42 STA $4206 [$00:4206] A:000A X:FB00 Y:00D1 ;set 10 as divisor C2/C829 20 C9 B3 JSR $B3C9 [$C2:B3C9] A:000A X:FB00 Y:00D1 ;JSR to RTS (return) C2/C82C 20 C9 B3 JSR $B3C9 [$C2:B3C9] A:000A X:FB00 Y:00D1 ;JSR to RTS (return) C2/C82F AC 14 42 LDY $4214 [$00:4214] A:000A X:FB00 Y:00D1 ;load quotient (max HP / 10) C2/C832 D0 03 BNE $03 [$C837] A:000A X:FB00 Y:0014 ;branch if not 0 C2/C834 A0 01 00 LDY #$0001 ;load 1 as regeneration amount C2/C837 84 E2 STY $E2 [$00:00E2] A:000A X:FB00 Y:0014 ;store quotient for regeneration amount C2/C839 BF 40 00 7E LDA $7E0040,x[$7E:FB40] A:000A X:FB00 Y:0014 ;load current ailment C2/C83D 89 20 BIT #$20 A:0020 X:FB00 Y:0014 ;check if Mushroom bit set C2/C83F D0 03 BNE $03 [$C844] A:0020 X:FB00 Y:0014 ;branch if set C2/C841 4C 6F C8 JMP $C86F [$C2:C86F] ;jump to HP degeneration routine regenerate HP ------------- C2/C844 C2 20 REP #$20 A:0020 X:FB00 Y:0014 ;set 16-bit A C2/C846 A5 E0 LDA $E0 [$00:00E0] A:0020 X:FB00 Y:0014 ;load current HP C2/C848 18 CLC A:00D1 X:FB00 Y:0014 ;prepares for addition algorithm C2/C849 65 E2 ADC $E2 [$00:00E2] A:00D1 X:FB00 Y:0014 ;add regeneration amount to current HP C2/C84B DF 13 00 7E CMP $7E0013,x[$7E:FB13] A:00E5 X:FB00 Y:0014 ;compare sum to maximum HP C2/C84F 30 04 BMI $04 [$C855] A:00E5 X:FB00 Y:0014 ;branch if less than maximum HP C2/C851 BF 13 00 7E LDA $7E0013,x[$7E:FB13] A:00E5 X:FB00 Y:0014 ;load maximum HP C2/C855 9F 11 00 7E STA $7E0011,x[$7E:FB11] A:00D3 X:FB00 Y:0014 ;store to current HP C2/C859 A5 E2 LDA $E2 [$00:00E2] A:00D3 X:FB00 Y:0014 ;load regeneration amount C2/C85B 09 00 80 ORA #$8000 A:0014 X:FB00 Y:0014 ;set bit 7 (heal bit) C2/C85E 9F 45 00 7E STA $7E0045,x[$7E:FB45] A:8014 X:FB00 Y:0014 ;store as numerals to show C2/C862 E2 20 SEP #$20 A:8014 X:FB00 Y:0014 C2/C864 BF 44 00 7E LDA $7E0044,x[$7E:FB44] A:8014 X:FB00 Y:0014 C2/C868 09 80 ORA #$80 A:8007 X:FB00 Y:0014 ;set bit 7 C2/C86A 9F 44 00 7E STA $7E0044,x[$7E:FB44] A:8087 X:FB00 Y:0014 C2/C86E 60 RTS A:8087 X:FB00 Y:0014 ;end degenerate HP (this example uses slot 1) ------------- C2/C86F C2 20 REP #$20 A:0004 X:FA80 Y:0014 ;set 16-bit A C2/C871 A5 E0 LDA $E0 [$00:00E0] A:0004 X:FA80 Y:0014 ;load current HP C2/C873 38 SEC A:00CA X:FA80 Y:0014 C2/C874 E5 E2 SBC $E2 [$00:00E2] A:00CA X:FA80 Y:0014 ;subtract degeneration amount from current HP C2/C876 F0 02 BEQ $02 [$C87A] A:00B6 X:FA80 Y:0014 ;branch if diff = 0 C2/C878 10 03 BPL $03 [$C87D] A:00B6 X:FA80 Y:0014 ;branch if diff greater than 0 C2/C87A A9 01 00 LDA #$0001 ;load 1 to store to current HP C2/C87D 9F 11 00 7E STA $7E0011,x[$7E:FA91] A:00B6 X:FA80 Y:0014 ;store to current HP C2/C881 A5 E2 LDA $E2 [$00:00E2] A:00B6 X:FA80 Y:0014 ;load degeneration amount C2/C883 9F 45 00 7E STA $7E0045,x[$7E:FAC5] A:0014 X:FA80 Y:0014 ;store as numerals to show C2/C887 E2 20 SEP #$20 A:0014 X:FA80 Y:0014 C2/C889 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0014 X:FA80 Y:0014 C2/C88D 09 80 ORA #$80 A:0000 X:FA80 Y:0014 ;set bit 7 C2/C88F 9F 44 00 7E STA $7E0044,x[$7E:FAC4] A:0080 X:FA80 Y:0014 C2/C893 60 RTS A:0080 X:FA80 Y:0014 ;end ================================================================= ALLY: Timed-hit Calculation DISASSEMBLER NOTE: A weapon's timing is loaded onto the character using 7E:005C - 7E:005F before battle. C2/C894 AE 50 07 LDX $0750 [$7F:0750] A:2100 X:003C Y:03D2 ;load character's stats C2/C897 86 C8 STX $C8 [$00:00C8] A:2100 X:003C Y:03D2 C2/C899 BF 5C 00 7E LDA $7E005C,x[$7E:0098] A:2100 X:003C Y:03D2 ;load weapon timing byte 1 C2/C89D 29 FF 00 AND #$00FF A:2100 X:003C Y:03D2 C2/C8A0 0A ASL A A:2100 X:003C Y:03D2 C2/C8A1 8D D0 30 STA $30D0 [$7F:30D0] A:2100 X:003C Y:03D2 C2/C8A4 BF 5D 00 7E LDA $7E005D,x[$7E:0099] A:2100 X:003C Y:03D2 ;load weapon timing byte 2 C2/C8A8 29 FF 00 AND #$00FF A:2100 X:003C Y:03D2 C2/C8AB 0A ASL A A:2100 X:003C Y:03D2 C2/C8AC 8D D2 30 STA $30D2 [$7F:30D2] A:2100 X:003C Y:03D2 C2/C8AF BF 5E 00 7E LDA $7E005E,x[$7E:009A] A:2100 X:003C Y:03D2 ;load weapon timing byte 3 C2/C8B3 29 FF 00 AND #$00FF A:2100 X:003C Y:03D2 C2/C8B6 0A ASL A A:2100 X:003C Y:03D2 C2/C8B7 8D D4 30 STA $30D4 [$7F:30D4] A:2100 X:003C Y:03D2 C2/C8BA BF 5F 00 7E LDA $7E005F,x[$7E:009B] A:2100 X:003C Y:03D2 ;load weapon timing byte 4 C2/C8BE 29 FF 00 AND #$00FF A:2100 X:003C Y:03D2 C2/C8C1 0A ASL A A:2100 X:003C Y:03D2 C2/C8C2 CD 4C 30 CMP $304C [$7F:304C] A:2100 X:003C Y:03D2 C2/C8C5 30 03 BMI $03 [$C8CA] A:2100 X:003C Y:03D2 C2/C8C7 AD 4C 30 LDA $304C [$7F:304C] A:2100 X:003C Y:03D2 C2/C8CA 8D D6 30 STA $30D6 [$7F:30D6] A:2100 X:003C Y:03D2 C2/C8CD 9C 4C 30 STZ $304C [$7F:304C] A:2100 X:003C Y:03D2 C2/C8D0 A9 37 D2 LDA #$D237 A:2100 X:003C Y:03D2 C2/C8D3 8D 6E 30 STA $306E [$7F:306E] A:2100 X:003C Y:03D2 C2/C8D6 9C 60 30 STZ $3060 [$7F:3060] A:2100 X:003C Y:03D2 C2/C8D9 A9 01 00 LDA #$0001 A:2100 X:003C Y:03D2 C2/C8DC 0C 00 30 TSB $3000 [$7F:3000] A:2100 X:003C Y:03D2 C2/C8DF 22 00 08 00 JSL $000800[$00:0800] A:2100 X:003C Y:03D2 C2/C8E3 AD DE 30 LDA $30DE [$00:30DE] A:0001 X:FA80 Y:2500 ;load timed hit variable C2/C8E6 3A DEC A A:0002 X:FA80 Y:2500 C2/C8E7 85 B0 STA $B0 [$00:00B0] A:0001 X:FA80 Y:2500 C2/C8E9 10 01 BPL $01 [$C8EC] A:0001 X:FA80 Y:2500 ;branch if greater than/equal to 0 C2/C8EB 60 RTS A:FFFF X:FA80 Y:2500 ;end level 1 ------- C2/C8EC AE 30 07 LDX $0730 [$00:0730] A:0001 X:FA80 Y:2500 C2/C8EF 86 CA STX $CA [$00:00CA] A:0001 X:FC00 Y:2500 C2/C8F1 A9 00 01 LDA #$0100 A:0001 X:FC00 Y:2500 C2/C8F4 85 CE STA $CE [$00:00CE] A:0100 X:FC00 Y:2500 C2/C8F6 BF 45 00 7E LDA $7E0045,x[$7E:FC45] A:0100 X:FC00 Y:2500 ;load base damage C2/C8FA 85 C2 STA $C2 [$00:00C2] A:00A6 X:FC00 Y:2500 ;store to register C2/C8FC A5 B0 LDA $B0 [$00:00B0] A:00A6 X:FC00 Y:2500 ;load timed hit variable C2/C8FE D0 02 BNE $02 [$C902] A:0001 X:FC00 Y:2500 ;branch if not 0 (aka attack is timed perfectly) C2/C900 46 C2 LSR $C2 [$00:00C2] ;base damage/2 level 2 ------- C2/C902 BF 45 00 7E LDA $7E0045,x[$7E:FC45] A:0001 X:FC00 Y:2500 ;load base damage C2/C906 18 CLC A:00A6 X:FC00 Y:2500 C2/C907 65 C2 ADC $C2 [$00:00C2] A:00A6 X:FC00 Y:2500 ;add modified damage to base damage C2/C909 9F 45 00 7E STA $7E0045,x[$7E:FC45] A:014C X:FC00 Y:2500 ;store as modified damage C2/C90D BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:014C X:FC00 Y:2500 ;load mortal wound bit C2/C911 89 80 00 BIT #$0080 A:0080 X:FC00 Y:2500 ;check mortal wound bit C2/C914 D0 27 BNE $27 [$C93D] A:0080 X:FC00 Y:2500 ;branch if set C2/C916 BF 11 00 7E LDA $7E0011,x[$7E:FC11] A:0000 X:FC00 Y:2480 C2/C91A F0 21 BEQ $21 [$C93D] A:000C X:FC00 Y:2480 C2/C91C 38 SEC A:000C X:FC00 Y:2480 C2/C91D E5 C2 SBC $C2 [$00:00C2] A:000C X:FC00 Y:2480 C2/C91F 10 03 BPL $03 [$C924] A:C00B X:FC00 Y:2480 C2/C921 A9 00 00 LDA #$0000 A:C00B X:FC00 Y:2480 C2/C924 9F 11 00 7E STA $7E0011,x[$7E:FC11] A:0000 X:FC00 Y:2480 C2/C928 D0 13 BNE $13 [$C93D] A:0000 X:FC00 Y:2480 C2/C92A BF 1D 00 7E LDA $7E001D,x[$7E:FC1D] A:0000 X:FC00 Y:2480 C2/C92E 89 01 00 BIT #$0001 A:5C00 X:FC00 Y:2480 C2/C931 D0 0A BNE $0A [$C93D] A:5C00 X:FC00 Y:2480 C2/C933 20 C8 C5 JSR $C5C8 [$C2:C5C8] A:5C00 X:FC00 Y:2480 ;JSR for monster defeated C2/C936 E2 20 SEP #$20 A:4000 X:0010 Y:000E C2/C938 20 A6 C6 JSR $C6A6 [$C2:C6A6] A:4000 X:0010 Y:000E ;Flower Bonus: Load status attributes C2/C93B C2 20 REP #$20 A:4002 X:0010 Y:000E C2/C93D 60 RTS A:0080 X:FC00 Y:2500 ================================================================= ALLY: Timing for Physical Defense C2/C93E E2 20 SEP #$20 A:0000 X:0002 Y:FF0F C2/C940 AE 50 07 LDX $0750 [$00:0750] A:0000 X:0002 Y:FF0F C2/C943 86 C8 STX $C8 [$00:00C8] A:0000 X:FC00 Y:FF0F C2/C945 20 0A B3 JSR $B30A [$C2:B30A] A:0000 X:FC00 Y:FF0F ;load monster stats C2/C948 85 CF STA $CF [$00:00CF] A:0000 X:FC00 Y:FF0F C2/C94A AE 30 07 LDX $0730 [$00:0730] A:0000 X:FC00 Y:FF0F C2/C94D 86 CA STX $CA [$00:00CA] A:0000 X:FA80 Y:FF0F C2/C94F 20 0A B3 JSR $B30A [$C2:B30A] A:0000 X:FA80 Y:FF0F ;load player stats C2/C952 85 CE STA $CE [$00:00CE] A:0001 X:FA80 Y:2600 C2/C954 F0 04 BEQ $04 [$C95A] A:0001 X:FA80 Y:2600 C2/C956 A5 CF LDA $CF [$00:00CF] A:0001 X:FA80 Y:2600 C2/C958 F0 03 BEQ $03 [$C95D] A:0000 X:FA80 Y:2600 C2/C95D C2 20 REP #$20 A:0000 X:FA80 Y:2600 ;set 16-bit A C2/C95F BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0000 X:FA80 Y:2600 ; C2/C963 89 80 00 BIT #$0080 A:8E80 X:FA80 Y:2600 ;check if MISS C2/C966 D0 01 BNE $01 [$C969] A:8E80 X:FA80 Y:2600 ;branch if not set C2/C968 60 RTS ;end C2/C969 AD 4C 30 LDA $304C [$00:304C] A:8E80 X:FA80 Y:2600 C2/C96C 38 SEC A:00AC X:FA80 Y:2600 C2/C96D E9 80 00 SBC #$0080 A:00AC X:FA80 Y:2600 C2/C970 29 FF 00 AND #$00FF A:002C X:FA80 Y:2600 C2/C973 8D 4C 30 STA $304C [$00:304C] A:002C X:FA80 Y:2600 C2/C976 85 B0 STA $B0 [$00:00B0] A:002C X:FA80 Y:2600 C2/C978 A9 02 00 LDA #$0002 A:002C X:FA80 Y:2600 C2/C97B 8D D0 30 STA $30D0 [$00:30D0] A:0002 X:FA80 Y:2600 C2/C97E A9 50 00 LDA #$0050 A:0002 X:FA80 Y:2600 C2/C981 8D D2 30 STA $30D2 [$00:30D2] A:0050 X:FA80 Y:2600 C2/C984 A9 78 00 LDA #$0078 A:0050 X:FA80 Y:2600 C2/C987 8D D4 30 STA $30D4 [$00:30D4] A:0078 X:FA80 Y:2600 C2/C98A A9 7C 00 LDA #$007C A:0078 X:FA80 Y:2600 C2/C98D 8D D6 30 STA $30D6 [$00:30D6] A:007C X:FA80 Y:2600 C2/C990 A9 37 D2 LDA #$D237 A:007C X:FA80 Y:2600 C2/C993 8D 6E 30 STA $306E [$00:306E] A:D237 X:FA80 Y:2600 C2/C996 9C 60 30 STZ $3060 [$00:3060] A:D237 X:FA80 Y:2600 C2/C999 A9 01 00 LDA #$0001 A:D237 X:FA80 Y:2600 C2/C99C 0C 00 30 TSB $3000 [$00:3000] A:0001 X:FA80 Y:2600 C2/C99F 22 00 08 00 JSL $000800[$00:0800] A:0001 X:FA80 Y:2600 ;wait for SA-1 timing range calculation *** C2/C9A3 AD DE 30 LDA $30DE [$00:30DE] A:0001 X:FA80 Y:2600 ;load timing variable from SA-1 [00:00DE] C2/C9A6 3A DEC A A:0002 X:FA80 Y:2600 C2/C9A7 3A DEC A A:0001 X:FA80 Y:2600 C2/C9A8 10 03 BPL $03 [$C9AD] A:0000 X:FA80 Y:2600 ;branch if greater than/equal to 0 C2/C9AD A5 B0 LDA $B0 [$00:00B0] A:0000 X:FA80 Y:2600 C2/C9AF 8D 4C 30 STA $304C [$00:304C] A:0068 X:FA80 Y:2600 C2/C9B2 A9 50 00 LDA #$0050 A:0068 X:FA80 Y:2600 ;load range A for level 1 C2/C9B5 8D D0 30 STA $30D0 [$00:30D0] A:0050 X:FA80 Y:2600 C2/C9B8 A9 60 00 LDA #$0060 A:0050 X:FA80 Y:2600 ;load range Y for level 2 C2/C9BB 8D D2 30 STA $30D2 [$00:30D2] A:0060 X:FA80 Y:2600 C2/C9BE A9 68 00 LDA #$0068 A:0060 X:FA80 Y:2600 ;load range Z for level 2 C2/C9C1 8D D4 30 STA $30D4 [$00:30D4] A:0068 X:FA80 Y:2600 C2/C9C4 A9 78 00 LDA #$0078 A:0068 X:FA80 Y:2600 ;load range B for level 1 C2/C9C7 8D D6 30 STA $30D6 [$00:30D6] A:0078 X:FA80 Y:2600 C2/C9CA A9 37 D2 LDA #$D237 A:0078 X:FA80 Y:2600 C2/C9CD 8D 6E 30 STA $306E [$00:306E] A:D237 X:FA80 Y:2600 C2/C9D0 9C 60 30 STZ $3060 [$00:3060] A:D237 X:FA80 Y:2600 C2/C9D3 A9 01 00 LDA #$0001 A:D237 X:FA80 Y:2600 C2/C9D6 0C 00 30 TSB $3000 [$00:3000] A:0001 X:FA80 Y:2600 C2/C9D9 22 00 08 00 JSL $000800[$00:0800] A:0001 X:FA80 Y:2600 ;wait for SA-1 timing range calculation *** C2/C9DD AD DE 30 LDA $30DE [$00:30DE] A:0001 X:FA80 Y:2600 ;load timing variable C2/C9E0 3A DEC A A:0001 X:FA80 Y:2600 C2/C9E1 85 B0 STA $B0 [$00:00B0] A:0000 X:FA80 Y:2600 C2/C9E3 10 01 BPL $01 [$C9E6] A:0000 X:FA80 Y:2600 ;branch if greater than/equal to 0 60 C2/C9E6 BF 42 00 7E LDA $7E0042,x[$7E:FAC2] A:0000 X:FA80 Y:2600 ;load defense byte C2/C9EA 09 04 00 ORA #$0004 A:0000 X:FA80 Y:2600 ;set 'block' bit C2/C9ED 9F 42 00 7E STA $7E0042,x[$7E:FAC2] A:0004 X:FA80 Y:2600 ;store defense byte C2/C9F1 BF 45 00 7E LDA $7E0045,x[$7E:FAC5] A:0004 X:FA80 Y:2600 ;load base damage C2/C9F5 85 C2 STA $C2 [$00:00C2] A:0001 X:FA80 Y:2600 ;store C2/C9F7 A5 B0 LDA $B0 [$00:00B0] A:0001 X:FA80 Y:2600 ;load timing variable C2/C9F9 F0 03 BEQ $03 [$C9FE] A:0000 X:FA80 Y:2600 ;branch if not 0 C2/C9FB 4C 73 CA JMP $CA73 [$00:CA73] ;jump to 0 damage routine C2/C9FE A5 C2 LDA $C2 [$00:00C2] A:0000 X:FA80 Y:2600 ;load base damage C2/CA00 4A LSR A A:0001 X:FA80 Y:2600 ;divide by 2, for level 1 timed defense C2/CA01 85 C2 STA $C2 [$00:00C2] A:0000 X:FA80 Y:2600 ;store as modified damage C2/CA03 BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:0000 X:FA80 Y:2600 ;load status enhancement C2/CA07 89 80 00 BIT #$0080 A:0478 X:FA80 Y:2600 ;check mortal wound bit C2/CA0A D0 17 BNE $17 [$CA23] A:0478 X:FA80 Y:2600 ;branch if set C2/CA0C BF 11 00 7E LDA $7E0011,x[$7E:FA91] A:0478 X:FA80 Y:2600 ;load (current HP - base damage) C2/CA10 18 CLC A:00CA X:FA80 Y:2600 C2/CA11 65 C2 ADC $C2 [$00:00C2] A:00CA X:FA80 Y:2600 ;add back (base damage value / 2) C2/CA13 9F 11 00 7E STA $7E0011,x[$7E:FA91] A:00CA X:FA80 Y:2600 ;store as current HP C2/CA17 BF 45 00 7E LDA $7E0045,x[$7E:FAC5] A:00CA X:FA80 Y:2600 ;load numeral display address C2/CA1B 38 SEC A:0001 X:FA80 Y:2600 C2/CA1C E5 C2 SBC $C2 [$00:00C2] A:0001 X:FA80 Y:2600 ;subtract modified damage C2/CA1E 9F 45 00 7E STA $7E0045,x[$7E:FAC5] A:0001 X:FA80 Y:2600 ;store to numeral display address C2/CA22 60 RTS A:0001 X:FA80 Y:2600 mortal infliction (modified damage: 41) ----------------- C2/CA23 A9 0F 27 LDA #$270F A:0480 X:FB00 Y:2600 ;load 9999 constant C2/CA26 DF 45 00 7E CMP $7E0045,x[$7E:FB45] A:270F X:FB00 Y:2600 ;compare to numeral display C2/CA2A D0 07 BNE $07 [$CA33] A:270F X:FB00 Y:2600 ;branch if not 9999 damage C2/CA2C 85 C2 STA $C2 ;store 9999 to modified damage C2/CA2E A9 01 00 LDA #$0001 ;load 1 C2/CA31 80 0C BRA $0C [$CA3F] ;always branch C2/CA33 BF 35 00 7E LDA $7E0035,x[$7E:FB35] A:270F X:FB00 Y:2600 C2/CA37 38 SEC A:0004 X:FB00 Y:2600 C2/CA38 E5 C2 SBC $C2 [$00:00C2] A:0004 X:FB00 Y:2600 ;subtract modified damage C2/CA3A 10 03 BPL $03 [$CA3F] A:FFDB X:FB00 Y:2600 ;branch if greater than/equal to 0 C2/CA3C A9 00 00 LDA #$0000 A:FFDB X:FB00 Y:2600 ;load 0 C2/CA3F 9F 11 00 7E STA $7E0011,x[$7E:FB11] A:0000 X:FB00 Y:2600 ;store to current HP C2/CA43 F0 27 BEQ $27 [$CA6C] A:0000 X:FB00 Y:2600 ;branch if current HP at 0 C2/CA6C A5 C2 LDA $C2 [$00:00C2] A:0000 X:FB00 Y:2600 ;load modified damage C2/CA6E 9F 45 00 7E STA $7E0045,x[$7E:FB45] A:0029 X:FB00 Y:2600 ;store to numeral display address C2/CA72 60 RTS A:0029 X:FB00 Y:2600 ;end 0 damage routine ---------------- C2/CA73 BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:0001 X:FA80 Y:2600 ;load status enhancement C2/CA77 89 80 00 BIT #$0080 A:0478 X:FA80 Y:2600 ;check mortal wound bit C2/CA7A D0 13 BNE $13 [$CA8F] A:0478 X:FA80 Y:2600 ;branch if set C2/CA7C BF 11 00 7E LDA $7E0011,x[$7E:FA91] A:0478 X:FA80 Y:2600 ;load (current HP - base damage) C2/CA80 18 CLC A:00CA X:FA80 Y:2600 C2/CA81 65 C2 ADC $C2 [$00:00C2] A:00CA X:FA80 Y:2600 ;add back base damage value C2/CA83 9F 11 00 7E STA $7E0011,x[$7E:FA91] A:00CB X:FA80 Y:2600 ;store back to current HP C2/CA87 A9 00 00 LDA #$0000 A:00CB X:FA80 Y:2600 ;load 0 C2/CA8A 9F 45 00 7E STA $7E0045,x[$7E:FAC5] A:0000 X:FA80 Y:2600 ;store to numeral display address C2/CA8E 60 RTS A:0000 X:FA80 Y:2600 ;end ================================================================= ALLY/SPELLS: Additional timing effects for all ally spells C2/CAC6 AD 2C 07 C2/CAC9 0A C2/CACA AA C2/CACB 7C CE CA 0E CB ;Jump D8 CB ;Fire Orb D8 CB ;Super Jump D8 CB ;Super Flame 44 CC ;Ultra Jump 44 CC ;Ultra Flame 0E CB ;Therapy 1E CD ;Group Hug 3F CD ;Sleepy Time A2 CD ;Come Back 3F CD ;Mute E1 CD ;Psych Bomb 75 CE ;Terrorize 75 CE ;Poison Gas 0E CB ;Crusher E1 CD ;Bowser Crush 85 CE ;Geno Beam 22 CF ;Geno Boost 63 CF ;Geno Whirl 85 CE ;Geno Blast 85 CE ;Geno Flash 1E CD ;Thunderbolt 0E CB ;HP Rain C2 CF ;Psychopath 0E CB ;Shocker 75 CE ;Snowy DF CF ;Star Rain 0E CB ;Dummy 0E CB ;Dummy 0E CB ;Dummy 0E CB ;Dummy 0E CB ;Dummy 0E CB - 1 timing for x1.25 or x1.5 dmg (Jump, Therapy, Crusher, HP Rain, Shocker, x5 Dummy) D8 CB - multiple button presses (Fire Orb, Super Jump, Super Flame) 44 CC - 1 + more targets w/ presses (Ultra Jump, Ultra Flame) 1E CD - 1 timing for x1.25 dmg only (Group Hug, Thunderbolt) 3F CD - rotate. 1 target, if timed: all (Sleepy Time, Mute) A2 CD - timed heals all HP to target 0 (Come Back) E1 CD - button mash (Psych Bomb, Bowser Crush) 75 CE - rotate only (Terrorize, Poison Gas, Snowy) 85 CE - Charge only (Geno Beam, Geno Blast, Geno Flash) 22 CF - timed gives target Defense Up Buff (Geno Boost) 63 CF - timed for 9999+set enemy HP to 0 (Geno Whirl) C2 CF - time to activate HP read (Psychopath) DF CF - timed jumps (Star Rain) ================================================================= SPELL TIMINGS: multiple button presses (Fire Orb, Super Jump, Super Flame) C2/CBD8 A9 37 D2 LDA #$D237 A:0002 X:0002 Y:0001 C2/CBDB 8D 6E 30 STA $306E [$00:306E] A:D237 X:0002 Y:0001 C2/CBDE 9C 60 30 STZ $3060 [$00:3060] A:D237 X:0002 Y:0001 C2/CBE1 A9 01 00 LDA #$0001 A:D237 X:0002 Y:0001 C2/CBE4 0C 00 30 TSB $3000 [$00:3000] A:0001 X:0002 Y:0001 C2/CBE7 22 00 08 00 JSL $000800[$00:0800] A:0001 X:0002 Y:0001 C2/CBEB AD DE 30 LDA $30DE [$00:30DE] A:0001 X:0002 Y:0001 C2/CBEE 3A DEC A A:0000 X:0002 Y:0001 C2/CBEF 85 B0 STA $B0 [$00:00B0] A:FFFF X:0002 Y:0001 C2/CBF1 10 01 BPL $01 [$CBF4] A:FFFF X:0002 Y:0001 ;Is timing met? Jump. C2/CBF3 60 RTS A:FFFF X:0002 Y:0001 C2/CBF4 AE 50 07 LDX $0750 [$00:0750] A:FFFF X:0002 Y:0001 ; C2/CBF7 86 C8 STX $C8 [$00:00C8] A:FFFF X:FA80 Y:0001 C2/CBF9 AE 30 07 LDX $0730 [$00:0730] A:FFFF X:FA80 Y:0001 C2/CBFC 86 CA STX $CA [$00:00CA] A:FFFF X:FC00 Y:0001 C2/CBFE A9 00 01 LDA #$0100 A:FFFF X:FC00 Y:0001 C2/CC01 85 CE STA $CE [$00:00CE] A:0100 X:FC00 Y:0001 C2/CC03 BF 5E 00 7E LDA $7E005E,x[$7E:FC5E] A:0100 X:FC00 Y:0001 ;Load variable from monster to add to their damage (NOTE: This value on Allies is used for Weapon timings) C2/CC07 85 C2 STA $C2 [$00:00C2] A:0001 X:FC00 Y:0001 ================================================================= SPELL TIMINGS: 1 timing for x1.25 dmg only (Group Hug, Thunderbolt) C2/CD1E A9 37 D2 LDA #$D237 A:FF00 X:62E0 Y:3240 C2/CD21 8D 6E 30 STA $306E [$00:306E] A:FF00 X:62E0 Y:3240 C2/CD24 9C 60 30 STZ $3060 [$00:3060] A:FF00 X:62E0 Y:3240 C2/CD27 A9 01 00 LDA #$0001 A:FF00 X:62E0 Y:3240 C2/CD2A 0C 00 30 TSB $3000 [$00:3000] A:FF00 X:62E0 Y:3240 C2/CD2D 22 00 08 00 JSL $000800[$00:0800] A:FF00 X:62E0 Y:3240 C2/CD31 AD DE 30 LDA $30DE [$00:30DE] A:FF00 X:62E0 Y:3240 C2/CD34 3A DEC A A:FF00 X:62E0 Y:3240 C2/CD35 85 B0 STA $B0 [$00:00B0] A:FF00 X:62E0 Y:3240 C2/CD37 10 01 BPL $01 [$CD3A] A:FF00 X:62E0 Y:3240 C2/CD39 60 RTS A:FF00 X:62E0 Y:3240 C2/CD3A 64 B0 STZ $B0 [$00:00B0] A:FF00 X:62E0 Y:3240 C2/CD3C 4C 2A CB JMP $CB2A [$7F:CB2A] A:FF00 X:62E0 Y:3240 ->JMP C2/CB2A E2 20 SEP #$20 A:3C80 X:3C00 Y:0100 C2/CB2C AE 50 07 LDX $0750 [$00:0750] A:3C80 X:3C00 Y:0100 ;load character stats C2/CB2F 86 C8 STX $C8 [$00:00C8] A:3C80 X:3C00 Y:0100 C2/CB31 20 0A B3 JSR $B30A [$7F:B30A] A:3C80 X:3C00 Y:0100 C2/CB34 85 CF STA $CF [$00:00CF] A:3C80 X:3C00 Y:0100 C2/CB36 A2 2E 07 LDX #$072E A:3C80 X:3C00 Y:0100 C2/CB39 86 C6 STX $C6 [$00:00C6] A:3C80 X:3C00 Y:0100 C2/CB3B E2 20 SEP #$20 A:3C80 X:3C00 Y:0100 C2/CB3D A4 C6 LDY $C6 [$00:00C6] A:3C80 X:3C00 Y:0100 C2/CB3F C8 INY A:3C80 X:3C00 Y:0100 C2/CB40 C8 INY A:3C80 X:3C00 Y:0100 C2/CB41 B6 00 LDX $00,y [$00:0100] A:3C80 X:3C00 Y:0100 C2/CB43 D0 03 BNE $03 [$CB48] A:3C80 X:3C00 Y:0100 C2/CB45 4C D5 CB JMP $CBD5 [$7F:CBD5] A:3C80 X:3C00 Y:0100 C2/CB48 84 C6 STY $C6 [$00:00C6] A:3C80 X:3C00 Y:0100 C2/CB4A 86 CA STX $CA [$00:00CA] A:3C80 X:3C00 Y:0100 C2/CB4C 20 0A B3 JSR $B30A [$7F:B30A] A:3C80 X:3C00 Y:0100 C2/CB4F 85 CE STA $CE [$00:00CE] A:3C80 X:3C00 Y:0100 C2/CB51 BF 44 00 7E LDA $7E0044,x[$7E:3C44] A:3C80 X:3C00 Y:0100 C2/CB55 89 80 BIT #$80 A:3C80 X:3C00 Y:0100 C2/CB57 F0 E2 BEQ $E2 [$CB3B] A:3C80 X:3C00 Y:0100 C2/CB59 C2 20 REP #$20 A:3C80 X:3C00 Y:0100 C2/CB5B BF 45 00 7E LDA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CB5F 29 00 80 AND #$8000 A:3C80 X:3C00 Y:0100 C2/CB62 85 CC STA $CC [$00:00CC] A:3C80 X:3C00 Y:0100 C2/CB64 BF 45 00 7E LDA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CB68 29 FF 7F AND #$7FFF A:3C80 X:3C00 Y:0100 C2/CB6B 9F 45 00 7E STA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CB6F 4A LSR A A:3C80 X:3C00 Y:0100 C2/CB70 A4 B0 LDY $B0 [$00:00B0] A:3C80 X:3C00 Y:0100 C2/CB72 D0 01 BNE $01 [$CB75] A:3C80 X:3C00 Y:0100 C2/CB74 4A LSR A A:3C80 X:3C00 Y:0100 C2/CB75 85 C2 STA $C2 [$00:00C2] A:3C80 X:3C00 Y:0100 C2/CB77 18 CLC A:3C80 X:3C00 Y:0100 C2/CB78 7F 45 00 7E ADC $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CB7C C9 0F 27 CMP #$270F A:3C80 X:3C00 Y:0100 C2/CB7F 30 03 BMI $03 [$CB84] A:3C80 X:3C00 Y:0100 C2/CB81 A9 0F 27 LDA #$270F A:3C80 X:3C00 Y:0100 C2/CB84 9F 45 00 7E STA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CB88 A5 C2 LDA $C2 [$00:00C2] A:3C80 X:3C00 Y:0100 C2/CB8A F0 AF BEQ $AF [$CB3B] A:3C80 X:3C00 Y:0100 C2/CB8C A5 CC LDA $CC [$00:00CC] A:3C80 X:3C00 Y:0100 C2/CB8E 30 22 BMI $22 [$CBB2] A:3C80 X:3C00 Y:0100 C2/CB90 BF 11 00 7E LDA $7E0011,x[$7E:3C11] A:3C80 X:3C00 Y:0100 C2/CB94 F0 A5 BEQ $A5 [$CB3B] A:3C80 X:3C00 Y:0100 C2/CB96 38 SEC A:3C80 X:3C00 Y:0100 C2/CB97 E5 C2 SBC $C2 [$00:00C2] A:3C80 X:3C00 Y:0100 C2/CB99 10 03 BPL $03 [$CB9E] A:3C80 X:3C00 Y:0100 C2/CB9B A9 00 00 LDA #$0000 A:3C80 X:3C00 Y:0100 C2/CB9E 9F 11 00 7E STA $7E0011,x[$7E:3C11] A:3C80 X:3C00 Y:0100 C2/CBA2 D0 97 BNE $97 [$CB3B] A:3C80 X:3C00 Y:0100 C2/CBA4 BF 1D 00 7E LDA $7E001D,x[$7E:3C1D] A:3C80 X:3C00 Y:0100 ;Check if monster allowed death C2/CBA8 89 01 00 BIT #$0001 A:3C80 X:3C00 Y:0100 C2/CBAB D0 8E BNE $8E [$CB3B] A:3C80 X:3C00 Y:0100 C2/CBAD 20 C8 C5 JSR $C5C8 [$7F:C5C8] A:3C80 X:3C00 Y:0100 C2/CBB0 80 89 BRA $89 [$CB3B] A:3C80 X:3C00 Y:0100 C2/CBB2 BF 45 00 7E LDA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CBB6 09 00 80 ORA #$8000 A:3C80 X:3C00 Y:0100 C2/CBB9 9F 45 00 7E STA $7E0045,x[$7E:3C45] A:3C80 X:3C00 Y:0100 C2/CBBD BF 11 00 7E LDA $7E0011,x[$7E:3C11] A:3C80 X:3C00 Y:0100 C2/CBC1 18 CLC A:3C80 X:3C00 Y:0100 C2/CBC2 65 C2 ADC $C2 [$00:00C2] A:3C80 X:3C00 Y:0100 C2/CBC4 DF 13 00 7E CMP $7E0013,x[$7E:3C13] A:3C80 X:3C00 Y:0100 C2/CBC8 30 04 BMI $04 [$CBCE] A:3C80 X:3C00 Y:0100 C2/CBCA BF 13 00 7E LDA $7E0013,x[$7E:3C13] A:3C80 X:3C00 Y:0100 C2/CBCE 9F 11 00 7E STA $7E0011,x[$7E:3C11] A:3C80 X:3C00 Y:0100 C2/CBD2 4C 3B CB JMP $CB3B [$7F:CB3B] A:3C80 X:3C00 Y:0100 C2/CBD5 C2 20 REP #$20 A:3C80 X:3C00 Y:0100 C2/CBD7 60 RTS A:3C80 X:3C00 Y:0100 ================================================================= SPELL TIMING: Sleepy Time, Mute C2/CD3F A5 B0 LDA $B0 [$00:00B0] A:0080 X:0000 Y:0002 C2/CD41 C5 B2 CMP $B2 [$00:00B2] A:0080 X:0000 Y:0002 C2/CD43 10 03 BPL $03 [$CD48] A:0080 X:0000 Y:0002 C2/CD45 64 B0 STZ $B0 [$00:00B0] A:0080 X:0000 Y:0002 ;Set B0 to 0 C2/CD47 60 RTS A:0080 X:0000 Y:0002 ;Return C2/CD48 A9 01 00 LDA #$0001 A:0080 X:0000 Y:0002 ; C2/CD4B 85 B0 STA $B0 [$00:00B0] A:0080 X:0000 Y:0002 ;Communicates with animation script to play new animation C2/CD4D AD 30 07 LDA $0730 [$00:0730] A:0080 X:0000 Y:0002 C2/CD50 8D 8E 07 STA $078E [$00:078E] A:0080 X:0000 Y:0002 C2/CD53 A2 00 00 LDX #$0000 A:0080 X:0000 Y:0002 C2/CD56 86 C4 STX $C4 [$00:00C4] A:0080 X:0000 Y:0002 C2/CD58 9B TXY A:0080 X:0000 Y:0002 C2/CD59 BF F0 A1 C2 LDA $C2A1F0,x[$C2:A1F0] A:0080 X:0000 Y:0002 ;Load pointers to all stats of monsters in battle C2/CD5D CD 8E 07 CMP $078E [$00:078E] A:0080 X:0000 Y:0002 C2/CD60 F0 14 BEQ $14 [$CD76] A:0080 X:0000 Y:0002 C2/CD62 AA TAX A:0080 X:0000 Y:0002 C2/CD63 BF 00 00 7E LDA $7E0000,x[$7E:0000] A:0080 X:0000 Y:0002 ;Loads monster's mortal status (if disabled/removed) C2/CD67 29 C0 00 AND #$00C0 A:0080 X:0000 Y:0002 ;Clears bits 6 and 7 (bit6=disabled/bit7=removed) C2/CD6A D0 0A BNE $0A [$CD76] A:0080 X:0000 Y:0002 ;Branch if monster alive C2/CD6C 8A TXA A:0080 X:0000 Y:0002 C2/CD6D A6 C4 LDX $C4 [$00:00C4] A:0080 X:0000 Y:0002 C2/CD6F 9D 30 07 STA $0730,x[$00:0730] A:0080 X:0000 Y:0002 C2/CD72 E8 INX A:0080 X:0000 Y:0002 C2/CD73 E8 INX A:0080 X:0000 Y:0002 C2/CD74 86 C4 STX $C4 [$00:00C4] A:0080 X:0000 Y:0002 C2/CD76 BB TYX A:0080 X:0000 Y:0002 C2/CD77 E8 INX A:0080 X:0000 Y:0002 C2/CD78 E8 INX A:0080 X:0000 Y:0002 C2/CD79 E0 0F 00 CPX #$000F A:0080 X:0000 Y:0002 C2/CD7C 30 DA BMI $DA [$CD58] A:0080 X:0000 Y:0002 ;Rerun monster vital status check (Jumps to $CD58) C2/CD7E A9 00 00 LDA #$0000 A:0080 X:0000 Y:0002 C2/CD81 A6 C4 LDX $C4 [$00:00C4] A:0080 X:0000 Y:0002 C2/CD83 9D 30 07 STA $0730,x[$00:0730] A:0080 X:0000 Y:0002 C2/CD86 20 E6 BC JSR $BCE6 [$7F:BCE6] A:0080 X:0000 Y:0002 ;Jump to C2/BCE6 (writes spell stats) C2/CD89 A2 00 00 LDX #$0000 A:0080 X:0000 Y:0002 C2/CD8C BD 30 07 LDA $0730,x[$00:0730] A:0080 X:0000 Y:0002 C2/CD8F F0 04 BEQ $04 [$CD95] A:0080 X:0000 Y:0002 C2/CD91 E8 INX A:0080 X:0000 Y:0002 C2/CD92 E8 INX A:0080 X:0000 Y:0002 C2/CD93 80 F7 BRA $F7 [$CD8C] A:0080 X:0000 Y:0002 C2/CD95 AD 8E 07 LDA $078E [$00:078E] A:0080 X:0000 Y:0002 C2/CD98 9D 30 07 STA $0730,x[$00:0730] A:0080 X:0000 Y:0002 C2/CD9B A9 00 00 LDA #$0000 A:0080 X:0000 Y:0002 C2/CD9E 9D 32 07 STA $0732,x[$00:0732] A:0080 X:0000 Y:0002 C2/CDA1 60 RTS A:0080 X:0000 Y:0002 ================================================================== SPELL TIMINGS: Charge only (Geno Beam, Geno Blast, Geno Flash) C2/CE85 AE 50 07 LDX $0750 [7E:0750] A:0000 X:0000 Y:1484 C2/CE88 86 C8 STX $C8 [00:00C8] A:0000 X:0000 Y:1484 C2/CE8A A2 2E 07 LDX #072E A:0000 X:0000 Y:1484 C2/CE8D 86 C6 STX $C6 [00:00C6] A:0000 X:0000 Y:1484 C2/CE8F A2 00 01 LDX #0100 A:0000 X:0000 Y:1484 C2/CE92 86 C2 STX $C2 [00:00C2] A:0000 X:0000 Y:1484 C2/CE94 E2 20 SEP #20 A:0000 X:0000 Y:1484 C2/CE96 A4 C6 LDY $C6 [$00:00C6] A:0000 X:0000 Y:1484 C2/CE98 C8 INY A:0000 X:0000 Y:1484 C2/CE99 C8 INY A:0000 X:0000 Y:1484 C2/CE9A B6 00 LDX $00,y [$00:1484] A:0000 X:0000 Y:1484 C2/CE9C F0 5A BEQ $5A [$CEF8] A:0000 X:0000 Y:1484 C2/CE9E 84 C6 STY $C6 [$00:00C6] A:0000 X:0000 Y:1484 C2/CEA0 86 CA STX $CA [$00:00CA] A:0000 X:0000 Y:1484 C2/CEA2 BF 44 00 7E LDA $7E0044,x[$7E:0044] A:0000 X:0000 Y:1484 C2/CEA6 89 80 BIT #$80 A:0000 X:0000 Y:1484 C2/CEA8 F0 EA BEQ $EA [$CE94] A:0000 X:0000 Y:1484 C2/CEAA BF 40 00 7E LDA $7E0040,x[$7E:0040] A:0000 X:0000 Y:1484 C2/CEAE 89 80 BIT #$80 A:0000 X:0000 Y:1484 C2/CEB0 D0 E2 BNE $E2 [$CE94] A:0000 X:0000 Y:1484 C2/CEB2 BF 41 00 7E LDA $7E0041,x[$7E:0041] A:0000 X:0000 Y:1484 C2/CEB6 89 01 BIT #$01 A:0000 X:0000 Y:1484 C2/CEB8 D0 DA BNE $DA [$CE94] A:0000 X:0000 Y:1484 C2/CEBA C2 20 REP #$20 A:0000 X:0000 Y:1484 C2/CEBC BF 45 00 7E LDA $7E0045,x[$7E:0045] A:0000 X:0000 Y:1484 C2/CEC0 85 C2 STA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CEC2 A5 B0 LDA $B0 [$00:00B0] A:0000 X:0000 Y:1484 ;load how many timings were gathered C2/CEC4 0A ASL A A:0000 X:0000 Y:1484 C2/CEC5 AA TAX A:0000 X:0000 Y:1484 C2/CEC6 FC FB CE JSR ($CEFB,x)[$7E:0000] A:0000 X:0000 Y:1484 ;get charge timing damage value, added to final output C2/CEC9 A6 CA LDX $CA [$00:00CA] A:0000 X:0000 Y:1484 C2/CECB BF 45 00 7E LDA $7E0045,x[$7E:0045] A:0000 X:0000 Y:1484 C2/CECF 18 CLC A:0000 X:0000 Y:1484 C2/CED0 65 C2 ADC $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CED2 9F 45 00 7E STA $7E0045,x[$7E:0045] A:0000 X:0000 Y:1484 C2/CED6 BF 11 00 7E LDA $7E0011,x[$7E:0011] A:0000 X:0000 Y:1484 C2/CEDA F0 B8 BEQ $B8 [$CE94] A:0000 X:0000 Y:1484 C2/CEDC 38 SEC A:0000 X:0000 Y:1484 C2/CEDD E5 C2 SBC $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CEDF 10 03 BPL $03 [$CEE4] A:0000 X:0000 Y:1484 C2/CEE1 A9 00 00 LDA #$0000 A:0000 X:0000 Y:1484 C2/CEE4 9F 11 00 7E STA $7E0011,x[$7E:0011] A:0000 X:0000 Y:1484 C2/CEE8 D0 AA BNE $AA [$CE94] A:0000 X:0000 Y:1484 C2/CEEA BF 1D 00 7E LDA $7E001D,x[$7E:001D] A:0000 X:0000 Y:1484 C2/CEEE 89 01 00 BIT #$0001 A:0000 X:0000 Y:1484 C2/CEF1 D0 A1 BNE $A1 [$CE94] A:0000 X:0000 Y:1484 C2/CEF3 20 C8 C5 JSR $C5C8 [$7E:C5C8] A:0000 X:0000 Y:1484 C2/CEF6 80 9C BRA $9C [$CE94] A:0000 X:0000 Y:1484 C2/CEF8 C2 20 REP #$20 A:0000 X:0000 Y:1484 C2/CEFA 60 RTS A:0000 X:0000 Y:1484 C2/CEFB 05 CF ;x0.25 0C CF ;x0.5 12 CF ;x0.75 1E CF ;x1 1F CF ;x0 C2/CF05 A5 C2 LDA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF07 4A LSR A A:0000 X:0000 Y:1484 C2/CF08 4A LSR A A:0000 X:0000 Y:1484 C2/CF09 85 C2 STA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF0B 60 RTS A:0000 X:0000 Y:1484 C2/CF0C A5 C2 LDA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF0E 4A LSR A A:0000 X:0000 Y:1484 C2/CF0F 85 C2 STA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF11 60 RTS A:0000 X:0000 Y:1484 C2/CF12 A5 C2 LDA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF14 4A LSR A A:0000 X:0000 Y:1484 C2/CF15 85 C4 STA $C4 [$00:00C4] A:0000 X:0000 Y:1484 C2/CF17 4A LSR A A:0000 X:0000 Y:1484 C2/CF18 18 CLC A:0000 X:0000 Y:1484 C2/CF19 65 C4 ADC $C4 [$00:00C4] A:0000 X:0000 Y:1484 C2/CF1B 85 C2 STA $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF1D 60 RTS A:0000 X:0000 Y:1484 C2/CF1E 60 RTS A:0000 X:0000 Y:1484 C2/CF1F 64 C2 STZ $C2 [$00:00C2] A:0000 X:0000 Y:1484 C2/CF21 60 RTS A:0000 X:0000 Y:1484 ================================================================= load timing for Geno Boost C2/CF22 A9 37 D2 LDA #$D237 A:0000 X:0000 Y:1484 C2/CF25 8D 6E 30 STA $306E [$7E:306E] A:0000 X:0000 Y:1484 C2/CF28 9C 60 30 STZ $3060 [$7E:3060] A:0000 X:0000 Y:1484 C2/CF2B A9 01 00 LDA #$0001 A:0000 X:0000 Y:1484 C2/CF2E 0C 00 30 TSB $3000 [$7E:3000] A:0000 X:0000 Y:1484 C2/CF31 22 00 08 00 JSL $000800[$00:0800] A:0000 X:0000 Y:1484 C2/CF35 AD DE 30 LDA $30DE [$00:30DE] A:0001 X:0022 Y:0002 ;load timing variable C2/CF38 3A DEC A A:0002 X:0022 Y:0002 C2/CF39 85 B0 STA $B0 [$00:00B0] A:0001 X:0022 Y:0002 C2/CF3B 10 01 BPL $01 [$CF3E] A:0001 X:0022 Y:0002 ;branch if greater than 0 C2/CF3D 60 RTS C2/CF3E AE 30 07 LDX $0730 [$00:0730] A:0001 X:0022 Y:0002 ;load RAM address for slot 1 C2/CF41 86 CA STX $CA [$00:00CA] A:0001 X:FA80 Y:0002 C2/CF43 A9 01 01 LDA #$0101 A:0001 X:FA80 Y:0002 C2/CF46 85 CE STA $CE [$00:00CE] A:0101 X:FA80 Y:0002 C2/CF48 BF 44 00 7E LDA $7E0044,x[$7E:FAC4] A:0101 X:FA80 Y:0002 C2/CF4C 89 80 00 BIT #$0080 A:00C0 X:FA80 Y:0002 C2/CF4F D0 06 BNE $06 [$CF57] A:00C0 X:FA80 Y:0002 C2/CF51 A9 FF FF LDA #$FFFF C2/CF54 85 B0 STA $B0 [$00:00B0] C2/CF56 60 RTS C2/CF57 BF 41 00 7E LDA $7E0041,x[$7E:FAC1] A:00C0 X:FA80 Y:0002 ;load spell's status enhancement byte C2/CF5B 09 60 00 ORA #$0060 A:0018 X:FA80 Y:0002 ;set 'defense up' bit C2/CF5E 9F 41 00 7E STA $7E0041,x[$7E:FAC1] A:0078 X:FA80 Y:0002 ;store as current status enhancement C2/CF62 60 RTS A:0078 X:FA80 Y:0002 ;end ================================================================= Jump from Star Rain C2/CFDF A9 37 D2 LDA #$D237 A:0080 X:0000 Y:0003 C2/CFE2 8D 6E 30 STA $306E [$00:306E] A:0080 X:0000 Y:0003 C2/CFE5 9C 60 30 STZ $3060 [$00:3060] A:0080 X:0000 Y:0003 C2/CFE8 A9 01 00 LDA #$0001 A:0080 X:0000 Y:0003 C2/CFEB 0C 00 30 TSB $3000 [$00:3000] A:0080 X:0000 Y:0003 C2/CFEE 22 00 08 00 JSL $000800[$00:0800] A:0080 X:0000 Y:0003 C2/CFF2 AD DE 30 LDA $30DE [$00:30DE] A:0080 X:0000 Y:0003 C2/CFF5 3A DEC A A:0080 X:0000 Y:0003 C2/CFF6 85 B0 STA $B0 [$00:00B0] A:0080 X:0000 Y:0003 C2/CFF8 10 01 BPL $01 [$CFFB] A:0080 X:0000 Y:0003 C2/CFFA 60 RTS A:0080 X:0000 Y:0003 C2/CFFB AE 50 07 LDX $0750 [$00:0750] A:0080 X:0000 Y:0003 C2/CFFE 86 C8 STX $C8 [$00:00C8] A:0080 X:0000 Y:0003 C2/D000 A2 2E LDX #$2E A:0080 X:0000 Y:0003 C2/D002 07 86 ORA [$86] [$00:0000] A:0080 X:0000 Y:0003 C2/D004 C6 A9 DEC $A9 [$00:00A9] A:0080 X:0000 Y:0003 C2/D006 00 01 BRK #$01 A:0080 X:0000 Y:0003 C2/D008 85 CE STA $CE [$00:00CE] A:0080 X:0000 Y:0003 // C2/D00A A4 C6 LDY $C6 [$00:00C6] A:0080 X:0000 Y:0003 C2/D00C C8 INY A:0080 X:0000 Y:0003 C2/D00D C8 INY A:0080 X:0000 Y:0003 C2/D00E B6 00 LDX $00,y [$00:0003] A:0080 X:0000 Y:0003 C2/D010 F0 40 BEQ $40 [$D052] A:0080 X:0000 Y:0003 ;jump to return C2/D012 84 C6 STY $C6 [$00:00C6] A:0080 X:0000 Y:0003 C2/D014 86 CA STX $CA [$00:00CA] A:0080 X:0000 Y:0003 C2/D016 BF 44 00 7E LDA $7E0044,x[$7E:0044] A:0080 X:0000 Y:0003 C2/D01A 89 80 00 BIT #$0080 A:0080 X:0000 Y:0003 C2/D01D F0 EB BEQ $EB [$D00A] A:0080 X:0000 Y:0003 C2/D01F BF 5E 00 7E LDA $7E005E,x[$7E:005E] A:0080 X:0000 Y:0003 C2/D023 85 C2 STA $C2 [$00:00C2] A:0080 X:0000 Y:0003 C2/D025 BF 45 00 7E LDA $7E0045,x[$7E:0045] A:0080 X:0000 Y:0003 C2/D029 18 CLC A:0080 X:0000 Y:0003 C2/D02A 65 C2 ADC $C2 [$00:00C2] A:0080 X:0000 Y:0003 C2/D02C 9F 45 00 7E STA $7E0045,x[$7E:0045] A:0080 X:0000 Y:0003 C2/D030 BF 11 00 7E LDA $7E0011,x[$7E:0011] A:0080 X:0000 Y:0003 C2/D034 F0 D4 BEQ $D4 [$D00A] A:0080 X:0000 Y:0003 C2/D036 38 SEC A:0080 X:0000 Y:0003 C2/D037 E5 C2 SBC $C2 [$00:00C2] A:0080 X:0000 Y:0003 C2/D039 10 03 BPL $03 [$D03E] A:0080 X:0000 Y:0003 C2/D03B A9 00 00 LDA #$0000 A:0080 X:0000 Y:0003 C2/D03E 9F 11 00 7E STA $7E0011,x[$7E:0011] A:0080 X:0000 Y:0003 C2/D042 D0 C6 BNE $C6 [$D00A] A:0080 X:0000 Y:0003 C2/D044 BF 1D 00 7E LDA $7E001D,x[$7E:001D] A:0080 X:0000 Y:0003 C2/D048 89 01 00 BIT #$0001 A:0080 X:0000 Y:0003 C2/D04B D0 BD BNE $BD [$D00A] A:0080 X:0000 Y:0003 C2/D04D 20 C8 C5 JSR $C5C8 [$7F:C5C8] A:0080 X:0000 Y:0003 C2/D050 80 B8 BRA $B8 [$D00A] A:0080 X:0000 Y:0003 C2/D052 60 RTS A:0080 X:0000 Y:0003 C2/D09F 9B BD 30 07 F0 27 AA BF 40 00 7E 89 80 01 F0 05 A9 00 00 80 0F BF 45 00 7E F0 09 4A 4A 4A 4A D0 03 A9 01 00 9F 5E 00 7E BB E8 E8 C2/>>>> 80 D3 ;Jump back to $D09F C2/>>>> 60 ================================================================= Geno Whirl C2/CF63 C2/CFAE A9 0F 27 ;load 9999 for Geno Whirl ================================================================= load current HP = max HP for Come Back C2/CDA2 C2/CDD1 BF 13 00 7E ;load max HP C2/CDD5 9F 11 00 7E ;save current HP ================================================================= SPELLS: Damage modifying calculations for all spells DISASSEMBLER NOTE: This is calculated before timings begin. C2/D053 AD 2C 07 C2/D056 0A C2/D057 AA C2/D058 7C 5B D0 C2/D05B 9B D0 ;Jump C2/D05D 9C D0 ;Fire Orb C2/D05F 77 D1 ;Super Jump C2/D061 9C D0 ;Super Flame C2/D063 FB D0 ;Ultra Jump C2/D065 4F D1 ;Ultra Flame C2/D067 9B D0 ;Therapy C2/D069 9B D0 ;Group Hug C2/D06B 9B D0 ;Sleepy Time C2/D06D 9B D0 ;Come Back C2/D06F 9B D0 ;Mute C2/D071 9C D0 ;Psych Bomb C2/D073 9C D0 ;Terrorize C2/D075 9C D0 ;Poison Gas C2/D077 9B D0 ;Crusher C2/D079 9C D0 ;Bowser Crush C2/D07B 9B D0 ;Geno Beam C2/D07D 9B D0 ;Geno Boost C2/D07F 9B D0 ;Geno Whirl C2/D081 9B D0 ;Geno Blast C2/D083 9B D0 ;Geno Flash C2/D085 9B D0 ;Thunderbolt C2/D087 9B D0 ;HP Rain C2/D089 9B D0 ;Psychopath C2/D08B 9B D0 ;Shocker C2/D08D 9C D0 ;Snowy C2/D08F 9C D0 ;Star Rain C2/D091 9B D0 ;Dummy C2/D093 9B D0 ;Dummy C2/D095 9B D0 ;Dummy C2/D097 9B D0 ;Dummy C2/D099 9B D0 ;Dummy 9B D0 = No modifiers 9C D0 = x0.0625 modifier (4 rights) (Fire Orb, many others) 77 D1 = x0.5 modifier (1 right) FB D0 = x0.125 modifier (3 rights) with multi-targetting (Ultra Jump) 4F D1 = x0.0625 modifier (4 rights) w/ multi-targetting (Ultra Flame) ================================================================= C2/C609 Sets mortally wounded bit ================================================================= Revive Pick-Me-Up (Revives with status afflicted bonuses from equipped items) C2/C68C ;beginning ================================================================= Pick Me Up C2/C694 BF 13 00 7E ;load max HP C2/C698 9F 11 00 7E ;save current HP ================================================================= SPELLS: Targetting (Ultra Jump, Ultra Flame) C2/D1D8 AD 2C 07 0A AA 7C E0 D1 20 D2 20 D2 20 D2 20 D2 21 D2 21 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 20 D2 C2/D220 60 C2/D221 ================================================================= Level Up screen strings C2/D2E0 BF FE D4 C2 ;load pointers from bank $C2:D4FE (Each is separated by a 00) C2/D3A5 - Pointers for the following: C2/D3AF "Mario" C2/D3B5 "Toadstool" C2/D3BF "Bowser" C2/D3C6 "Geno" C2/D3CB "Mallow" ================================================================= Level-up screen strings C2/D5F8 - D6AF pointers " reaches level" C2/D611 - "Max HP" C2/D629 - "Attack" C2/D63F - "Defense" C2/D656 - "Mg.Attack" C2/D66D - "Mg.Defense" C2/D687 - " learns" and ""03 01 2E"" (spell name w/ quotes) C2/D697 - "Get a Bonus!" C2/D6A4 - "Choose one!" ================================================================= C2/DA0D BF 00 C0 F7 ;dialogue font? ================================================================= Battle End C2/DC76 AD 10 08 LDA $0810 [$00:0810] A:0000 X:0060 Y:2700 C2/DC79 F0 03 BEQ $03 [$DC7E] A:0000 X:0060 Y:2700 C2/DC7E A9 FF FF LDA #$FFFF A:0000 X:0060 Y:2700 C2/DC81 8D 20 08 STA $0820 [$00:0820] A:FFFF X:0060 Y:2700 C2/DC84 8D 22 08 STA $0822 [$00:0822] A:FFFF X:0060 Y:2700 C2/DC87 8D 24 08 STA $0824 [$00:0824] A:FFFF X:0060 Y:2700 C2/DC8A 8D 26 08 STA $0826 [$00:0826] A:FFFF X:0060 Y:2700 C2/DC8D 8D 28 08 STA $0828 [$00:0828] A:FFFF X:0060 Y:2700 C2/DC90 AD 32 30 LDA $3032 [$00:3032] A:FFFF X:0060 Y:2700 ;load current number of characters C2/DC93 29 FF 00 AND #$00FF A:0005 X:0060 Y:2700 C2/DC96 8D 30 08 STA $0830 [$00:0830] A:0005 X:0060 Y:2700 C2/DC99 A0 00 00 LDY #$0000 A:0005 X:0060 Y:2700 C2/DC9C 84 8E STY $8E [$00:008E] A:0005 X:0060 Y:0000 C2/DC9E B9 33 30 LDA $3033,y[$00:3033] A:0005 X:0060 Y:0000 C2/DCA1 29 FF 00 AND #$00FF A:0100 X:0060 Y:0000 C2/DCA4 AA TAX A:0000 X:0060 Y:0000 C2/DCA5 BF 84 DD C2 LDA $C2DD84,x[$C2:DD84] A:0000 X:0000 Y:0000 C2/DCA9 29 FF 00 AND #$00FF A:1400 X:0000 Y:0000 C2/DCAC A6 8E LDX $8E [$00:008E] A:0000 X:0000 Y:0000 C2/DCAE 9D 20 08 STA $0820,x[$00:0820] A:0000 X:0000 Y:0000 C2/DCB1 E8 INX A:0000 X:0000 Y:0000 C2/DCB2 E8 INX A:0000 X:0001 Y:0000 C2/DCB3 86 8E STX $8E [$00:008E] A:0000 X:0002 Y:0000 C2/DCB5 C8 INY A:0000 X:0002 Y:0000 C2/DCB6 CC 30 08 CPY $0830 [$00:0830] A:0000 X:0002 Y:0001 C2/DCB9 30 E3 BMI $E3 [$DC9E] A:0000 X:0002 Y:0001 C2/DCBB A0 00 00 LDY #$0000 A:0050 X:000A Y:0005 C2/DCBE B9 20 08 LDA $0820,y[$00:0820] A:0050 X:000A Y:0000 C2/DCC1 C9 FF FF CMP #$FFFF A:0000 X:000A Y:0000 C2/DCC4 F0 0B BEQ $0B [$DCD1] A:0000 X:000A Y:0000 C2/DCC6 AA TAX A:0000 X:000A Y:0000 C2/DCC7 BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0000 X:0000 Y:0000 ;Load overworld stats C2/DCCB 29 FF 00 AND #$00FF A:D11E X:0000 Y:0000 C2/DCCE 99 10 08 STA $0810,y[$00:0810] A:001E X:0000 Y:0000 C2/DCD1 C8 INY A:001E X:0000 Y:0000 C2/DCD2 C8 INY A:001E X:0000 Y:0001 C2/DCD3 C0 09 00 CPY #$0009 A:001E X:0000 Y:0002 C2/DCD6 30 E6 BMI $E6 [$DCBE] A:001E X:0000 Y:0002 C2/DCD8 AF 0C 00 FA LDA $FA000C[$FA:000C] A:001E X:0050 Y:000A ;load XP table pointer C2/DCDC 85 80 STA $80 [$00:0080] A:1AFF X:0050 Y:000A C2/DCDE A9 FA 00 LDA #$00FA A:1AFF X:0050 Y:000A ;load A to go to this bank (Bank HEX3A) C2/DCE1 85 82 STA $82 [$00:0082] A:00FA X:0050 Y:000A C2/DCE3 A0 00 00 LDY #$0000 A:00FA X:0050 Y:000A C2/DCE6 84 70 STY $70 [$00:0070] A:00FA X:0050 Y:0000 C2/DCE8 84 8E STY $8E [$00:008E] A:00FA X:0050 Y:0000 C2/DCEA B9 33 30 LDA $3033,y[$00:3033] A:00FA X:0050 Y:0000 C2/DCED 29 FF 00 AND #$00FF A:0100 X:0050 Y:0000 C2/DCF0 85 8C STA $8C [$00:008C] A:0000 X:0050 Y:0000 C2/DCF2 98 TYA A:0000 X:0050 Y:0000 C2/DCF3 0A ASL A A:0000 X:0050 Y:0000 C2/DCF4 A8 TAY A:0000 X:0050 Y:0000 C2/DCF5 B9 20 08 LDA $0820,y[$00:0820] A:0000 X:0050 Y:0000 C2/DCF8 C9 FF FF CMP #$FFFF A:0000 X:0050 Y:0000 C2/DCFB D0 03 BNE $03 [$DD00] A:0000 X:0050 Y:0000 C2/DD00 85 8A STA $8A [$00:008A] A:0000 X:0050 Y:0000 C2/DD02 AA TAX A:0000 X:0050 Y:0000 C2/DD03 AD 32 08 LDA $0832 [$00:0832] A:0000 X:0000 Y:0000 ;load XP won C2/DD06 85 7A STA $7A [$00:007A] A:0004 X:0000 Y:0000 C2/DD08 BF 0E F8 7F LDA $7FF80E,x[$7F:F80E] A:0004 X:0000 Y:0000 ;load accessory C2/DD0C 29 FF 00 AND #$00FF A:00FF X:0000 Y:0000 C2/DD0F C9 50 00 CMP #$0050 A:00FF X:0000 Y:0000 ;check if Exp.Booster C2/DD12 D0 02 BNE $02 [$DD16] A:00FF X:0000 Y:0000 ;branch if not C2/DD14 06 7A ASL $7A [$00:007A] A:0000 X:0000 Y:0000 ;double XP C2/DD16 BF 0A F8 7F LDA $7FF80A,x[$7F:F80A] A:00FF X:0000 Y:0000 ;load current XP C2/DD1A C9 0F 27 CMP #$270F A:270F X:0000 Y:0000 ;check if maxed out C2/DD1D 30 03 BMI $03 [$DD22] A:270F X:0000 Y:0000 ;branch if less than 9999 C2/DD1F 4C 72 DD JMP $DD72 [$00:DD72] A:270F X:0000 Y:0000 C2/DD22 18 CLC A:0101 X:0000 Y:0000 C2/DD23 65 7A ADC $7A [$00:007A] A:0101 X:0000 Y:0000 ;add XP won to current XP C2/DD25 85 72 STA $72 [$00:0072] A:0105 X:0000 Y:0000 ;store XP sum C2/DD27 C9 0F 27 CMP #$270F A:0105 X:0000 Y:0000 ;check if overflow C2/DD2A 30 05 BMI $05 [$DD31] A:0105 X:0000 Y:0000 ;branch if less than 9999 C2/DD31 BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0105 X:0000 Y:0000 ;load Level C2/DD35 29 FF 00 AND #$00FF A:D11E X:0000 Y:0000 C2/DD38 3A DEC A A:001E X:0000 Y:0000 C2/DD39 0A ASL A A:001D X:0000 Y:0000 C2/DD3A A8 TAY A:003A X:0000 Y:0000 C2/DD3B B7 80 LDA [$80],y[$FA:1B39] A:003A X:0000 Y:003A ;load XP needed for level up C2/DD3D C5 72 CMP $72 [$00:0072] A:3205 X:0000 Y:003A ;compare to XP sum C2/DD3F F0 05 BEQ $05 [$DD46] A:3205 X:0000 Y:003A ;branch if C2/DD41 30 03 BMI $03 [$DD46] A:3205 X:0000 Y:003A ;branch if needed XP less than sum C2/DD43 4C 6C DD JMP $DD6C [$00:DD6C] A:3205 X:0000 Y:003A C2/DD46 A5 8E LDA $8E [$00:008E] A:0082 X:0028 Y:0006 C2/DD48 0A ASL A A:0001 X:0028 Y:0006 C2/DD49 A8 TAY A:0002 X:0028 Y:0006 C2/DD4A B9 11 08 LDA $0811,y[$00:0813] A:0002 X:0028 Y:0002 C2/DD4D 1A INC A A:0000 X:0028 Y:0002 C2/DD4E 99 11 08 STA $0811,y[$00:0813] A:0001 X:0028 Y:0002 C2/DD51 BF 00 F8 7F LDA $7FF800,x[$7F:F828] A:0001 X:0028 Y:0002 C2/DD55 1A INC A A:1404 X:0028 Y:0002 C2/DD56 9F 00 F8 7F STA $7FF800,x[$7F:F828] A:1405 X:0028 Y:0002 C2/DD5A A6 8E LDX $8E [$00:008E] A:1405 X:0028 Y:0002 C2/DD5C BF 8A DD C2 LDA $C2DD8A,x[$C2:DD8B] A:1405 X:0001 Y:0002 C2/DD60 29 FF 00 AND #$00FF A:0402 X:0001 Y:0002 C2/DD63 05 70 ORA $70 [$00:0070] A:0002 X:0001 Y:0002 C2/DD65 85 70 STA $70 [$00:0070] A:0002 X:0001 Y:0002 C2/DD67 A6 8A LDX $8A [$00:008A] A:0002 X:0001 Y:0002 C2/DD69 4C 31 DD JMP $DD31 [$C2:DD31] A:0002 X:0028 Y:0002 C2/DD6C A5 72 LDA $72 [$00:0072] A:0010 X:0000 Y:0000 ;set character address C2/DD6E 9F 0A F8 7F STA $7FF80A,x[$7F:F80A] A:0000 X:0000 Y:0000 ;add address to read from XP gathered thus far C2/DD72 A5 8E LDA $8E [$00:008E] A:0000 X:0000 Y:0000 C2/DD74 1A INC A A:0000 X:0000 Y:0000 C2/DD75 CD 30 08 CMP $0830 [$00:0830] A:0001 X:0000 Y:0000 C2/DD78 10 04 BPL $04 [$DD7E] A:0001 X:0000 Y:0000 C2/DD7E A5 70 LDA $70 [$00:0070] A:0001 X:0000 Y:0000 C2/DD80 8D 34 08 STA $0834 [$00:0834] A:0000 X:0000 Y:0000 C2/DD83 60 RTS A:0000 X:0000 Y:0000 ================================================================= ... JSR from $C2/A1E3... C2/DD92 ================================================================= LEVEL-UP STUFF BEGINS here: C2/DDBC BB TYX A:0000 X:0000 Y:2000 C2/DDBD A9 02 00 LDA #$0002 A:0000 X:2000 Y:2000 C2/DDC0 9F 08 00 40 STA $400008,x[$40:2008] A:0002 X:2000 Y:2000 C2/DDC4 80 54 BRA $54 [$DE1A] A:0002 X:2000 Y:2000 C2/DE1A A9 00 00 LDA #$0000 A:0002 X:2000 Y:2000 C2/DE1D 9F 62 00 40 STA $400062,x[$40:2062] A:0000 X:2000 Y:2000 C2/DE21 9F 64 00 40 STA $400064,x[$40:2064] A:0000 X:2000 Y:2000 C2/DE25 4C 94 DE JMP $DE94 [$C2:DE94] A:0000 X:2000 Y:2000 ================================================================= C2/DE28 ================================================================= ... Jump from $C2/DE25... C2/DE94 C2/DED4 A9 54 E6 ;sets pointer table for something? 85 EA C2/DED9 A9 C2 00 ;it's within bank $C2 85 EC C2/DEDE 20 74 E5 JSR $E574 [$C2:E574] A:00C2 X:0000 Y:2000 ================================================================= C2/DEE1 ================================================================= E8 = Byte 1 Max HP Bonus EA = Byte 2 Attack/Defense Bonus EC = Byte 3 MgAtk/MgDef Bonus AD 98 34 = ??? 8D 9A 34 = Current HP (03) 8D 9C 34 = New HP Value 8D F0 30 = set to 0005 8D F2 30 = set to 082C 9C 9A 34 = Byte 2 Atk/Def Bonus 9C 9C 34 = Byte 2 Atk/Def Bonus 8D 9A 34 = Current Attack (06) 8D 9C 34 = New Attack Value 8C F0 30 = set to 0006 8C F2 30 = set to 162C 8D 9A 34 = Current Defense (07) 8D 9C 34 = New Defense Value 8C F0 30 = set to 0007 8C F2 30 = set to 242C ================================================================= Level-Up stats upon leveling C2/DF6D C2/DF7B AF 0E 00 FA LDA $FA000E[$FA:000E] A:0000 X:0000 Y:0000 ;load stat modifications from table (3A:1B39) C2/DF93 7F 03 F8 7F ADC $7FF803,x[$7F:F803] A:0004 X:0000 Y:0000 ;add max HP from overworld stats C2/DF97 9F 03 F8 7F STA $7FF803,x[$7F:F803] A:0004 X:0000 Y:0000 ;save to max HP C2/DF9B 9F 01 F8 7F STA $7FF801,x[$7F:F801] A:0004 X:0000 Y:0000 ;save to current HP C2/DF9F 8D 9C 34 STA $349C [$00:349C] A:0004 X:0000 Y:0000 C2/DFA2 A9 05 00 LDA #$0005 A:0004 X:0000 Y:0000 C2/DFA5 8D F0 30 STA $30F0 [$00:30F0] A:0005 X:0000 Y:0000 ;save to RAM for display? C2/DFA8 A9 2C 08 LDA #$082C A:0005 X:0000 Y:0000 C2/DFAB 8D F2 30 STA $30F2 [$00:30F2] A:082C X:0000 Y:0000 C2/DFBE BF 06 F8 7F LDA $7FF806,x[$7F:F806] A:2243 X:0000 Y:0001 ;load character's base attack stat C2/DFC2 8D 9A 34 STA $349A [$00:349A] A:2214 X:0000 Y:0001 C2/DFC5 A5 EA LDA $EA [$00:00EA] A:2214 X:0000 Y:0001 ;load attack level up bonuses C2/DFC7 4A LSR A A:2243 X:0000 Y:0001 ;isolate upper bits C2/DFC8 4A LSR A A:2221 X:0000 Y:0001 C2/DFC9 4A LSR A A:2210 X:0000 Y:0001 C2/DFCA 4A LSR A A:2208 X:0000 Y:0001 C2/DFCB 18 CLC A:2204 X:0000 Y:0001 C2/DFCC 7F 06 F8 7F ADC $7FF806,x[$7F:F806] A:2204 X:0000 Y:0001 C2/DFD0 90 02 BCC $02 [$DFD4] A:2218 X:0000 Y:0001 C2/DFD4 9F 06 F8 7F STA $7FF806,x[$7F:F806] A:2218 X:0000 Y:0001 ;save to character's base attack stat ... C2/E0AF AF 20 00 FA ;load table for learned spells ... C2/E0DC 1F 10 F8 7F ;add to spell list (byte 1) C2/E0E0 9F 10 F9 7F ;save to spell list (byte 1) ================================================================= ??? Level-up overworld bonus stats? C2/E2D5 7C D8 E2 DE E2 ;attack bonus 66 E3 ;max hp bonus 97 E3 ;magic bonus 9C 9A 34 9C 9C 34 A6 EC C8 B7 C2/E49E 7C A1 E4 A7 E4 B0 E4 BE E4 A6 EC A5 E0 ================================================================= Flower Bonus: Animation Routine C2/F455 61 F4 ;... 62 F4 ;Displays ATTACK UP! 73 F4 ;Displays DEFENSE UP! 84 F4 ;Displays HPMAX! 8C F4 ;Displays ONCE AGAIN! 99 F4 ;Displays LUCKY! 11 ;Return subroutine ==ATTACK UP!== 95 ;Initialize bonus message sequence 96 00 00 00 E0 ;Display bonus message: ATTACK coords (0, -32) 04 10 0A 00 ;Pause script until 10 frames elapsed 96 00 02 02 E8 ;Display bonus message: UP! coords (2, -24) 97 ;Pause script until bonus message complete 11 ;Return subroutine ==DEFENSE UP!== 95 ;Initialize bonus message sequence 96 00 01 00 E0 ;Display bonus message: ATTACK coords (0, -32) 04 10 0A 00 ;Pause script until 10 frames elapsed 96 00 02 02 E8 ;Display bonus message: UP! coords (2, -24) 97 ;Pause script until bonus message complete 11 ;Return subroutine ==HPMAX!== 95 ;Initialize bonus message sequence 96 00 03 04 E0 ;Display bonus message: HPMAX! coords (4, -32) 97 ;Pause script until bonus message complete 11 ;Return subroutine ==ONCE AGAIN!== 95 ;Initialize bonus message sequence 96 00 04 00 E0 ;Display bonus message: ONCE coords (0, -32) 96 00 05 04 E8 ;Display bonus message: AGAIN! coords (4, -24) 97 ;Pause script until bonus message complete 11 ;Return subroutine ==LUCKY!== C2/F499 95 ;Initialize bonus message sequence 96 00 06 02 E0 ;Display bonus message: LUCKY! coords (2, -32) 97 ;Pause script until bonus message complete 11 ;Return subroutine ==???== (Something to do with allies and victory?) C2/F4A1 20 03 01 00 ;AMEM (8-bit) $63 = 1 20 05 01 00 ;AMEM (8-bit) $65 = 1 6C ;??? 43 0A ;Sprite sequence = 10 (Victory pose) 4E ;Pause script until sprite sequence is done 04 10 1E 00 Pause script until 30 frames elapsed 20 0E 01 00 ;AMEM (8-bit) $6E = 1 22 6E 62 00 ;OMEM (main) $62 = AMEM (8-bit) $6E 5E ;Return sprite queue ==Toad trains you in battle (battle tutorial)== C2/F4BF